【发布时间】:2017-11-29 20:26:35
【问题描述】:
最近我遇到了一个场景,我必须使用其他向量的切片在向量中插入值并将其放在后面。我尝试使用 vector.back()-value 但它不允许我这样做。这是代码sn-p
tempVector.insert(inputs.back()-temp,inputs[loopVar]);
显示的错误是
没有重载函数“std::vector<_ty _alloc>::insert [with _Ty=int, _Alloc=std::allocator]”的实例与参数列表匹配
我试着在网上找一些像这样的例子,但在这方面找不到太多。有人可以告诉我我在这里做错了什么吗?我是 STL 和 c++14 的新手
【问题讨论】:
-
tempVector.insert(tempVector.end() inputs.end() - temp, inputs.begin() + loopVar);? (假设inputs.end() - temp <= inputs.begin() + loopVar) -
insert()期望第一个参数中有一个迭代器。back()返回(引用)最后一个元素值,而不是最后一个元素的迭代器。要获取最后一个元素的迭代器,请改用end()-1(假设vector不为空)。然后您可以根据需要从该迭代器中减去。