C vector 和 map的刪除

2022-03-29 19:42:21 字數 496 閱讀 9920

序列容器的erase方法返回值是指向緊接在被刪除元素之後的元素的有效迭代器,可以根據這個返回值來安全刪除元素。

vectorc;

for(vector::iterator it = c.begin(); it != c.end();)

關聯容器的

erase

方法沒有返回值,被刪除的迭代器失效,所以刪除前必須確保能得到下乙個迭代器,可以用

「後置遞增迭代器

」技術。

mapm;

for(map::iterator it = m.begin(); it != m.end();)

m.erase

得到it

的乙個副本,在

erase

真正開始之前

it已經遞增了。

所以erase

得到了當前的迭代器,在

erase

內部工作開始之前

it已經

++了,正好滿足我們的需要。

C vector和map的巢狀使用

在實習公司的專案裡,需要儲存每個使用者及其所有的操作指令,我想到的是用multimap,或者是map和vector巢狀的資料結構來儲存這些資料。一開始是想用multimap的,因為巢狀的給人感覺比較複雜,使用後發現multimap在遍歷輸出的時候,如果想以使用者來劃分有點麻煩了,除了操縱容器外還需要...

C vector刪除元素

c vector中實際刪除元素使用的是容器vector中std vector erase 方法,而std remove 並不刪除元素,因為容器的size 沒有變化,只是元素的替換。std vector erase 函式原型 iterator erase iterator position 刪除指定元...

C vector容器刪除操作

1.vector pop back 刪除vector的最後乙個元素,vector的大小減一,刪了的元素被銷毀。2.vector erase iterator erase iterator position iterator erase iterator first,iterator last 這個刪...