盛大遊戲關於vector刪除元素面試題

2021-06-29 03:39:45 字數 951 閱讀 1612

下列**的輸出為:

#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...