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