无法将对象插入相同类型的向量

时间:2017-10-04 04:01:43

标签: c++ vector types stl

所以我对c ++很新:

我有一个XMLItem类。

我通过

创建了一个XMLItem类的实例
XMLItem the_item = XMLItem(params...);

我创建了一个向量来保存XMLItems

vector<XMLItem> my_vect;

但是当我尝试使用

将the_item插入my_vect时
my_vect.insert(the_item);

我收到以下输出错误:

error: no matching function for call ‘std::vector<XMLItem>::insert(XMLItem&)’

看起来编译器抱怨我正在尝试插入对XMLItem类型的对象的引用,但我不知道为什么会出现这种情况。有没有什么我误解了在c ++中初始化对象?

2 个答案:

答案 0 :(得分:1)

std::vector::insert()在容器中的指定位置插入元素。你需要指定位置。没有filename1 = "North Sydney TE SP30062590-1 HVAC - Project Offer - Rev1.docx" from docx import Document document = Document(filename1) for paragraph in document.paragraphs: if 'Summary' in paragraph.text: print paragraph.text 的任何重载,这会导致一个参数,这就是编译器给你一个错误的原因。如果您不想指定位置,则应使用insert()push_back()

答案 1 :(得分:1)

insert操作需要一个职位。如果位置与您的情况无关,那么您可以使用emplace_back(C ++ 11)或push_back