2013-10-07 90 views
1

我有一個問題..我怎樣才能從一個C維數組中刪除多個元素?假設我有一個數組A = {1,3,5,8,9,7},我想從數組A中刪除假設3,5,7。請讓我知道是否有人知道任何有效的算法。如何從C++數組中刪除多個元素?

+4

總是有'std :: remove_if'。 – chris

+3

你不能「從陣列中刪除元素」。數組具有固定大小。您應該使用標準庫容器。 –

回答

7

數組在C++中不可調整大小。一個可調整大小的容器最好的辦法是std::vector,你會爲使用:

std::vector<int> v = {1,3,5,8,9,7}; 

,然後刪除一些斷言元素:

auto new_end = std::remove_if(v.begin(), v.end(), 
           std::bind(std::less<int>(), _1, 6)); 

但這只是洗牌您vector周圍的元素,使它們都結束了。要實際擦除它們,您需要撥打:

v.erase(new_end, v.end());