c++ - 从成对 vector 中删除一对

标签 c++ vector stl erase

<分区>

我有一个对 vector

std::vector<int,double> lambda;

我想删除第k个元素,即

lambda.erase(&lambda[k]);
lambda.erase(lambda[k]);

这两种尝试都会抛出一个不匹配的函数调用错误:

error: no matching function for call to ‘std::vector<std::pair<int, double> >::erase(__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, double> >, std::pair<int, double> >::value_type&)’
    lambda.erase(lambda[k]);

最佳答案

std::vector::erase期望迭代器作为它的参数;不是元素本身或指向元素的指针。

你可以

lambda.erase(lambda.begin() + k);

关于c++ - 从成对 vector 中删除一对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51151098/

相关文章:

c++ - 获取没有对象的成员函数的返回类型

c++ - 溢出/下溢问题?

r - 在 R 中,如何搜索包含在特定字符串中的字符向量元素?

java - 将数据从文件加载到 Vector 结构

c++ - 在 C++ 中为循环编写迭代器的更好方法是什么

c++ - 使用 memcpy() 函数将字节从 unsigned char 数组放入 std::string

c++ - 通过在 constexpr 构造函数中传递 N 在编译时创建大小为 N 的数组

c++ - 分别注册按键按下和释放c++

c++ - 如何在 C++ 中存储和添加指向引用 vector 的链接?

C++按值而不是按位置删除 vector 元素?