繁体   English   中英

C ++-返回对向量元素的引用

[英]C++ - Return reference to a vector element

我想返回对作为参数获取的向量中单个元素的引用,然后比较那里的内存地址。 我的代码的简化示例如下所示:

const int &test(std::vector<int> i) {
    return i.at(3);
}

TEST(test, all_test) {
    const std::vector<int> i = {1,2,3,4,5};
    const int &j = test(i);
    ASSERT_THAT(&j, Eq(&i.at(3)));
}

使用此方法,我得到以下错误消息:

Failure
Value of: &j
Expected: is equal to 0x55da7899d4dc
  Actual: 0x55da7899d4fc (of type int const*)

如何返回对单个矢量元素的引用?

您正在按值传递向量,因此您将返回对临时元素的引用。 如果通过参考传递矢量,则应该没问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM