gpt4 book ai didi

c++ - 带有索引和迭代器的 vector

转载 作者:太空狗 更新时间:2023-10-29 19:39:26 26 4
gpt4 key购买 nike

我只是想问问这里发生了什么,我哪里出错了?

vector<int> a(5);

for(int i=0; i<5; i++) cin>>a[i]; //Input is 1 2 3 4 5

for(int i=0; i<5; i++) cout<<a[i]<<" "; //Prints correct, 1 2 3 4 5
cout<<endl;

for(VI::iterator it = a.begin(); it!=a.end(); ++it) {
cout<<a[*it]<<" "; //Prints incorrect output
}
cout<<endl;

看起来,错误输出中的最后一个元素是 a[*(a.end()-1)] 而第一个元素从实际应该是缺失的。

最佳答案

正确的打印方式是

 cout<<*it<<" ";   

*它给出 vector 指向的值。在您的情况下,a[*it] = a[1] 用于第一次迭代,a[2] 用于第二次迭代,依此类推。最后将打印无效号码。这是缺少第一个数字的原因。你试图打印 a[1] a[2], a[3],a[4],

关于c++ - 带有索引和迭代器的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16991385/

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