[語法] 關於iterator的存取
看到上列有關vector的討論串, 做了一個關於iterator的小測試
#include <vector>
vector<int> p;
int main()
{
for(int i=0;i<10;i++)
p.push_back ;
vector<int>::iterator it=p.begin();
while(it!=p.end())
{
cout<<*it<<endl;
it++;
}
cout<<p.capacity()<<endl;
cout<<&*(it-1)<<endl; //在這邊存取it不會壞
cout<<&p[9]<<endl;
p.push_back(13);
cout<<&p[9]<<endl;
cout<<&*(it-1)<<endl; //但push_back後再次存取就爆
}
中間印出二次&p[9], 結果值相同, 因而確認系統並沒有重新assign記憶體
而中間也沒有再變動it的值, 為什麼就會爆掉呢????
麻煩版上大大們解惑@@"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.207.186
推
06/18 12:26, , 1F
06/18 12:26, 1F
→
06/18 12:27, , 2F
06/18 12:27, 2F
→
06/18 13:34, , 3F
06/18 13:34, 3F
推
06/18 16:06, , 4F
06/18 16:06, 4F
推
06/18 16:33, , 5F
06/18 16:33, 5F
→
06/18 16:33, , 6F
06/18 16:33, 6F
→
06/18 16:35, , 7F
06/18 16:35, 7F
→
06/18 16:36, , 8F
06/18 16:36, 8F
→
06/18 16:36, , 9F
06/18 16:36, 9F
推
06/18 16:53, , 10F
06/18 16:53, 10F
→
06/18 16:53, , 11F
06/18 16:53, 11F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
語法
4
11