如何解决向量assign() 导致back() 出现问题
刚刚练习了一些代码挑战并遇到了一个奇怪的问题。我有一个全局方法,它在每个索引(但最后一个)之后用“,”打印向量的内容。然后我为向量分配() 新值并再次调用该方法,但第二次调用后的 back() 引用是时髦的。这是主要的驱动程序代码:
...
std::vector<int> v = {-2,-1,1,2};
printV(v);
v.assign({1,2,3,4});
printV(v);
...
'printV()' 方法如下所示:
void printV(const std::vector<int> v) {
for(auto&& i : v) {
std::cout << i;
if (i != v.back()) {
std::cout << ",";
}
}
}
所以第一次调用 'printV()' 工作正常并打印 '-2,2'。然而,'v.assign({...})' 之后的第二次调用似乎导致 'v.back()' 引用第一个元素和最后一个元素并打印:'12,4'。我查看了assign()的方法细节,我认为它可能与引用失效有关,但我不确定这意味着什么或它是如何工作的。非常感谢任何帮助。
CM
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。