我想在向量的开头插入一个位集。我很难理解如何做到这一点。以下是我认为我可以做到的:
keyRej.insert(x, inpSeq[0]);
我不知道该放什么代替x?
答案 0 :(得分:5)
我不知道在x的位置放什么?
要插入的位置的迭代器:
keyRej.insert(keyRej.begin(), inpSeq[0]);
从语义上讲,insert元素在迭代器作为第一个参数传递之前进行。但这将导致向量的所有元素必须在一个位置上移动,并且还可能导致向量的内部数据存储块的重新分配。它还意味着所有迭代器或对向量元素的引用都是无效的。
有关详细信息,请参阅std::vector::insert
的此参考。
请注意,有一些容器,例如std::deque
,前面的附加元素很便宜,并且保留了引用(但不是迭代器)的有效性。
答案 1 :(得分:3)
x是根据您可能阅读的文档here的迭代器,新对象就在它之前插入。
keyRej.insert(keyRej.begin(), inpSeq[0]);