IVE擦除向量元素定義如下並用元素填充它:通過鍵
vector <vector<double> > my_vector;
但我希望與特定鍵一個刪除元素...
my_vector.erase(int(specific_key));
但它不允許我。我將如何恰當地處理分配給該鍵的元素?
IVE擦除向量元素定義如下並用元素填充它:通過鍵
vector <vector<double> > my_vector;
但我希望與特定鍵一個刪除元素...
my_vector.erase(int(specific_key));
但它不允許我。我將如何恰當地處理分配給該鍵的元素?
你假設由specific_key
意味着該位置的元素在vector
:
my_vector.erase(my_vector.begin() + specific_key);
將是 「最正確」 的答案。
如果您打算刪除匹配的元素specific_key
(這將在給定的例子是vector<double>
類型:
my_vector.erase(find(my_vector.begin(), my_vector.end(), specific_key));
擦除需要一個迭代器作爲參數。
你可以做
my_vector.erase (my_vector.begin() + specific_key);
您也可以在一個範圍內通過
my_vector.erase (my_vector.begin(), my_vector.begin() + 2);
一件事,你應該注意的是,矢量的尺寸也得到降低。
擦除方法將迭代器作爲它們的參數。
如果特定的鍵沒有位置,說其在矢量一些數據,然後一個必須迭代該數據的向量,並刪除特定的迭代器。
向量中沒有鍵,只有索引... – 2009-11-07 06:07:46