gpt4 book ai didi

c++ vector operator[] 引用

转载 作者:太空宇宙 更新时间:2023-11-04 16:17:28 24 4
gpt4 key购买 nike

vector<int> vec;
vec.reserve(10);
map<int, vector<int> >hash;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);

hash[-1] = vec;
vector<int> ref = hash[-1];
ref.push_back(5);
cout <<hash[-1].back() <<endl; // prints 4
hash[-1].push_back(6);
cout <<hash[-1].back() <<endl; // prints 6

我不确定,为什么在上面的代码中,hash[-1].back() 不打印 5(输出为 4)。[] vector 运算符返回一个引用,并且由于我将 5 添加到引用中,它不应该影响 hash[-1] 吗?或者正在制作拷贝 最后一个推送语句如何工作?

最佳答案

它返回一个引用,然后你用它复制

vector<int> ref = hash[-1];

你是说

vector<int>& ref = hash[-1];

关于c++ vector operator[] 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21107590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com