C++程式:從給定向量中移除元素


假設我們有一組存在於向量中的元素。我們將不得不使用向量類型別的erase()函式執行一些刪除操作,以便使用索引進行刪除,最後顯示其餘元素。erase函式不直接使用索引。我們將不得不透過傳遞v.begin()+index來傳遞其地址,這裡v是向量,v.begin()是第一個元素(第0個元素)的地址。現在透過向其新增索引,它將移動到給定索引處存在的元素。

因此,如果輸入類似於v = [5,8,6,3,2,0,1,4],從索引2、6和5處刪除,則輸出將為[5,8,3,2,0],因為最初陣列為[5,8,6,3,2,0,1,4],現在從索引2處刪除元素後,它變為[5,8,3,2,0,1,4],現在索引6處的元素為4,因此刪除它後,陣列將變為[5,8,6,3,2,0,1],現在索引5處的元素為1,因此刪除它後,陣列將變為[5,8,3,2,0]。

為了解決這個問題,我們將遵循以下步驟:

  • 使用v.erase(v.begin()+2)刪除索引2處的元素

  • 使用v.erase(v.begin()+6)刪除索引6處的元素

  • 使用v.erase(v.begin()+5)刪除索引5處的元素

示例

讓我們看看下面的實現以更好地理解:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
   vector<int> v = {5,8,6,3,2,0,1,4};
   v.erase(v.begin()+2);
   v.erase(v.begin()+6);
   v.erase(v.begin()+5);
   for(int i = 0; i<v.size(); i++){
       cout << v[i] << " ";
   }
}

輸入

{5,8,6,3,2,0,1,4}

輸出

5 8 3 2 0

更新於:2021年10月7日

10K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告