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