C ++程序中的迭代器无效
在本教程中,我们将讨论一个程序,以了解C++中的迭代器失效。
在容器对象的元素上进行迭代时,有时如果我们不应用绑定检查,它可能会失效。这主要是由于容器对象的形状和大小的变化而发生的。
示例
#include <bits/stdc++.h>
using namespace std;
int main() {
//声明向量
vector <int> v{1, 5, 10, 15, 20};
//在执行过程中更改向量
//这将导致绑定无效
for (auto it=v.begin();it!=v.end();it++)
if ((*it) == 5)
v.push_back(-1);
for (auto it=v.begin();it!=v.end();it++)
cout << (*it) << " ";
return 0;
}输出结果
1 5 10 15 20 -1 -1
(可能还会发生,添加新元素时,矢量将被复制到新位置,而我们的迭代器仍指向旧位置,这将导致错误。)
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短