一个简单的迭代器有关问题
一个简单的迭代器问题
程序如图所示的地方崩溃,按说我给了它两倍空间,for循环过程中迭代器不会失效,看了堆空间也确实如此,第一个元素push_back进去了,
0x00335024 fd fd fd fd ????
0x00335028 01 00 00 00 ....
0x0033502C 02 00 00 00 ....
0x00335030 03 00 00 00 ....
0x00335034 04 00 00 00 ....
0x00335038 05 00 00 00 ....
0x0033503C 06 00 00 00 ....
0x00335040 07 00 00 00 ....
0x00335044 08 00 00 00 ....
0x00335048 09 00 00 00 ....
0x0033504C 01 00 00 00 ....
0x00335050 cd cd cd cd ????
0x00335054 cd cd cd cd ????
0x00335058 cd cd cd cd ????
0x0033505C cd cd cd cd ????
0x00335060 cd cd cd cd ????
0x00335064 cd cd cd cd ????
0x00335068 cd cd cd cd ????
0x0033506C cd cd cd cd ????
0x00335070 fd fd fd fd ????
0x00335074 ab ab ab ab ????
0x00335078 ab ab ab ab ????
为什么++ iter崩溃了,请大神指教
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> test;
for(int i = 1; i <= 9; ++ i)
test.push_back(i);
test.reserve(2*test.size());
vector<int>::iterator end_itr = test.end();
for(vector<int>::iterator iter = test.begin();
iter != end_itr;
++ iter)//这里崩溃
{
cout << *iter;
test.push_back(*iter);
}
return 0;
}
程序如图所示的地方崩溃,按说我给了它两倍空间,for循环过程中迭代器不会失效,看了堆空间也确实如此,第一个元素push_back进去了,
0x00335024 fd fd fd fd ????
0x00335028 01 00 00 00 ....
0x0033502C 02 00 00 00 ....
0x00335030 03 00 00 00 ....
0x00335034 04 00 00 00 ....
0x00335038 05 00 00 00 ....
0x0033503C 06 00 00 00 ....
0x00335040 07 00 00 00 ....
0x00335044 08 00 00 00 ....
0x00335048 09 00 00 00 ....
0x0033504C 01 00 00 00 ....
0x00335050 cd cd cd cd ????
0x00335054 cd cd cd cd ????
0x00335058 cd cd cd cd ????
0x0033505C cd cd cd cd ????
0x00335060 cd cd cd cd ????
0x00335064 cd cd cd cd ????
0x00335068 cd cd cd cd ????
0x0033506C cd cd cd cd ????
0x00335070 fd fd fd fd ????
0x00335074 ab ab ab ab ????
0x00335078 ab ab ab ab ????
为什么++ iter崩溃了,请大神指教
Iterator
- 上一篇:这个c++写的dll怎么调用
- 下一篇:用什么软件可以在一台主机上筹建虚拟网络环境