【问题标题】:Why can't I erase a range of elements in this vector? [duplicate]为什么我不能擦除此向量中的一系列元素? [复制]
【发布时间】:2021-11-16 05:14:19
【问题描述】:

我无法擦除矢量的一部分。我有一个名为master 的向量(字符串)。它被验证(通过 size() 函数)大小为 500 个元素。我正在尝试删除一系列元素,从零开始到名为r. 的变量从我在网上看到的内容来看,这应该非常简单,但在阅读文档后我仍然无法弄清楚这一点。这是我的代码:

int r = 100;
master.erase(0,r);

编译器给了我这个错误:

[错误] 调用没有匹配的函数 'std::vectorstd::__cxx11::basic_string::erase(int, int&)'

... 在网上搜索后,当人们尝试将不同类型的变量添加到向量时,似乎经常出现这种情况。但是我没有那样做。我只有一个向量,其中所有元素都是字符串,我想删除一个范围。

我做错了什么?

【问题讨论】:

  • “从我在网上看到的情况来看,这应该非常简单” -- 您咨询过哪个在线资源告诉您使用索引(而不是迭代器)作为 @ 的参数987654321@?

标签: c++


【解决方案1】:

来自std::vector::erase documentation,参数应该是迭代器,所以你应该将迭代器作为参数传递,如下所示:

master.erase(master.begin(), master.begin()+100);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    相关资源
    最近更新 更多