按键删除矢量元素

时间:2009-11-07 06:04:42

标签: c++ vector encapsulation friend

我定义了以下内容,并用元素填充:

vector <vector<double> > my_vector;

但我希望删除一个带有特定键的元素......

my_vector.erase(int(specific_key));

但它不允许我。如何正确处理分配给该密钥的元素?

4 个答案:

答案 0 :(得分:5)

假设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));

答案 1 :(得分:1)

erase将迭代器作为参数。

你可以做到

my_vector.erase (my_vector.begin() + specific_key);

您也可以传入范围

my_vector.erase (my_vector.begin(), my_vector.begin() + 2);

您应该注意的一件事是矢量的大小也会减少。

答案 2 :(得分:0)

erase方法将迭代器作为参数。

Example

答案 3 :(得分:0)

如果特定键不是位置并且在向量中说出它的一些数据,则必须迭代该数据的向量并擦除特定的迭代器。