我定义了以下内容,并用元素填充:
vector <vector<double> > my_vector;
但我希望删除一个带有特定键的元素......
my_vector.erase(int(specific_key));
但它不允许我。如何正确处理分配给该密钥的元素?
答案 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方法将迭代器作为参数。
答案 3 :(得分:0)
如果特定键不是位置并且在向量中说出它的一些数据,则必须迭代该数据的向量并擦除特定的迭代器。