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
廣告