c++ - vector<shared_ptr<>> 清除错误

标签 c++ vector shared-ptr

我有以下问题:

当我尝试清除 v_doc 并保留最后一个元素时,出现以下错误:

C:\Users\hdaher\Documents\Project\CR_Verification\main.cpp|292|error: no matching function for call to 'std::vector

::clear(std::vector >::iterator, __gnu_cxx::__normal_iterator*, std::vector > >)'|

#include <memory>
#include <iostream>

using namespace std;

int main()
{
     //Declare a vector of type Document
     vector<shared_ptr<Document>> v_doc;

      //Works ok
      v_doc.clear();

      //Error HERE!! Clearn V_doc and keep only the last element
      v_doc.clear(v_doc.begin(),v_doc.end()-1);
      return 0;

}

最佳答案

clear没有过载。只有不带参数的 clear 可用。看起来你想调用 erase .

关于c++ - vector<shared_ptr<>> 清除错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20043990/

相关文章:

c++ - std::is_base_of 和 std::is_convertible 之间的区别

c++ - 使用共享指针访问单例子类时出现 SEGFAULT

c++ - 是否可以使shared_ptr协变?

c++ - 使用 FFMPEG API 将音频数据录制到现有媒体文件

c++ - 使用 C++ 或共享对象检测文本语言

c++ - 创建指向更多 vector 的指针 vector

c++ - 不明白为什么不允许我为这个 vector 下标

c++ - 名称 `weak_ptr::lock()` 的原因是什么?

c++ - boost 分词器重新分配

c++ - 如何判断一个 vector 是否有一定数量的元素C++