Paw*_*icz 9 c++ vector std visual-c++
我是编写代码的新手,我需要一些帮助.我需要在a的开头插入值std::vector,我需要将此向量中的其他值推送到更多位置,例如:添加到向量的开头和值从位置1移动到2,从2移动到3等等.我该怎么做?
Ron*_*Ron 19
使用std :: vector :: insert函数接受第一个元素的迭代器作为目标位置(插入元素之前的迭代器):
#include <vector>
int main() {
std::vector<int> v{ 1, 2, 3, 4, 5 };
v.insert(v.begin(), 6);
}
Run Code Online (Sandbox Code Playgroud)
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v{ 1, 2, 3, 4, 5 };
v.push_back(6);
std::rotate(v.rbegin(), v.rbegin() + 1, v.rend());
}
Run Code Online (Sandbox Code Playgroud)
sup*_*per 16
您应该考虑使用std::deque. 它的工作原理很像 a,std::vector但您可以从前端和后端添加和删除项目。
它通过将内部存储分成更小的块来实现这一点。您仍然拥有具有良好查找速度的随机访问迭代器。
如果您的容器很小,使用这种std::vector方法应该没问题,但是如果您存储大量数据std::deque,则在前面插入/删除的性能会好得多。
| 归档时间: |
|
| 查看次数: |
22693 次 |
| 最近记录: |