標準C 庫vector類erase方法的小bug

2021-05-28 01:38:55 字數 364 閱讀 9243

當使用erase方法刪除最後乙個值的時候,會出問題,最好使用pop_back方法

比如:乙個vector類的例項為a,a.begin()+offset就是最後乙個值在a中的位置,使用a.erase(a.begin()+offset)刪除最後乙個值的時候,會出問題

但使用pop_back的時候就沒有問題

因此,建議在使用erase方法刪除乙個vector例項中的某個值的時候,先判斷該值是否位於最尾,若是的話,使用pop_back

if(offset==a.size()-1)

a.pop_back();

else

a.erase(a.begin()+offset);

c 標準庫的類模板vector介紹

c 標準庫的類模板vector介紹 下面我根據我的學習情況介紹下標準庫的類模板vector,它代表一種更健壯的資料型別,提供了許多額外的功能。c 標準類庫提供了模板vector,它使得程式設計師能夠建立一種功能強大並且不容易出錯的資料型別。下面以乙個程式的實際例子為例,初識下vector。vecto...

C 標準庫 vector排序

前天要做乙個對c stl的vector容器做乙個排序操作,之前一直把vector當做乙個容量可自動變化的陣列,是的,陣列,所以打算按照對陣列進行排序的方法 用快速排序或是氣泡排序等演算法自己寫乙個排序的函式。後來覺得stl這麼強大,應該有它自己的排序方法 沒有好好學習啊 然後就去google了一下,...

C 標準庫vector型別

vector屬於順序容器,所謂順序容器,就是元素的順序與元素的值無關,與元素加入容器的位置相對應。對於vector可以將其理解為可變大小陣列,支援快速隨機訪問,在尾部之外的位置插入刪除可能會比較慢。了解完概念接下來就開始學習它的用法 假設以下 前面都包含vector標頭檔案,幷包含using nam...