下列**的輸出為:
#include "iostream"
#include "vector"
using
namespace
std;
intmain(
void
)
} for
(itor=array.begin();itor!=array.end();itor++)
return
0;
}
a、100 b、100 300 500 c、100 500 d、程式錯誤
vector在erase之後,指向下乙個元素的位置,其實進行erase操作時將後面所有元素都向前移動,迭代器位置沒有移動。itor=array.erase(itor) erase返回下乙個元素的位址,相當於給itor乙個新值。
下面兩種方法可以解決上述問題
#include "iostream"
#include "vector"
using namespace std;
int main(void)
//itor--;不可以
} for(itor=array.begin();itor!=array.end();itor++)
return 0;
}
#include "iostream"
#include "vector"
using namespace std;
int main(void)
else
} for(itor=array.begin();itor!=array.end();itor++)
return 0;
}
Vector容器刪除元素
使用vector容器也有一段時間了,但是對於他的刪除操作還是有點疑問,今天就總結一下。vector資料儲存是一段預先分配好大小的記憶體連續的空間,插入資料和刪除資料都會引起後面資料記憶體的整體移動。今天就說說刪除操作吧 1 刪除最後的元素 直接使用pop back 就可以了,這個沒什麼好說的 2 刪...
vector 之刪除元素
刪除指定位置的元素 刪除vector中第5個位置的元素 1 vector vec 執行vector初始化操作 2 vector iterator iter vec.begin 5 獲取第五個元素的iterator 3 vec.erase iter 刪除第五個元素 刪除重複元素 刪除vector中的重...
vector呼叫erase刪除元素
for std vector iterator iter g vecdownloadinfos.begin iter g vecdownloadinfos.end else pop back 只刪除最後乙個元素,而erase可以刪掉乙個由iterator指出的元素,也可刪掉乙個範圍的元素 remov...