C++在vector<int>数组头部插入数据
时间: 2024-09-25 19:18:58 浏览: 51
在C++中,如果你有一个`std::vector<int>`类型的动态数组(向量),想要在其头部(即索引0的位置)插入元素,你可以使用`push_back()`函数配合`resize()`函数。但如果你想直接插入到第一个位置,`push_front()`方法更为合适,如果该元素不存在则需要先调整容量。
以下是步骤:
```cpp
#include <vector>
// 假设你已经有一个vector,比如
std::vector<int> vec = {1, 2, 3, 4};
// 要在头部插入新元素5
int new_element = 5;
// 如果你想保留原有元素并插入新元素,可以这样做:
vec.push_front(new_element); // 直接在头部添加
// 或者调整大小并手动移动元素(适用于已知新元素数)
vec.resize(1 + vec.size()); // 扩大容量
vec[0] = new_element; // 插入新元素
for (size_t i = 1; i < vec.size(); ++i) {
vec[i - 1] = vec[i]; // 将后续元素向前移一位
}
// 现在vec的内容应变为 [new_element, 1, 2, 3, 4]
```
相关问题
定义一个空的vector,将用户输入的数组a[10]的10个数插入到vector中,在vector头部插入数b,用迭代器遍历vector并输出其中的元素值。然后将vector从小到大排序,删除vector尾部的元素,用迭代器遍历vector并输出其中的元素值。最后将vector清空。
下面是C++的实现代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v; // 定义一个空的vector
int a[10];
for (int i = 0; i < 10; i++) {
cin >> a[i]; // 输入数组a
v.push_back(a[i]); // 将a[i]插入到vector的尾部
}
int b;
cin >> b;
v.insert(v.begin(), b); // 在vector头部插入数b
cout << "遍历vector并输出其中的元素值:" << endl;
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
sort(v.begin(), v.end()); // 对vector进行从小到大排序
v.pop_back(); // 删除vector尾部的元素
cout << "删除vector尾部的元素之后,再次遍历vector并输出其中的元素值:" << endl;
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
v.clear(); // 清空vector
return 0;
}
```
输入示例:
```
1 2 3 4 5 6 7 8 9 10
0
```
输出示例:
```
遍历vector并输出其中的元素值:
0 1 2 3 4 5 6 7 8 9 10
删除vector尾部的元素之后,再次遍历vector并输出其中的元素值:
0 1 2 3 4 5 6 7 8 9
```
c++vector用法
C++ 的 vector 是一个动态数组,可以在运行时改变其大小。它提供了比传统数组更多的内存管理功能,可以方便地插入、删除和查找元素。下面是一些 vector 的用法示例:
1. 声明和初始化一个 vector:
```c++
#include <vector>
using namespace std;
vector<int> vec1; // 声明一个空 vector
vector<int> vec2(10); // 声明一个大小为 10 的 vector,初始值全是 0
vector<int> vec3(5, 2); // 声明一个大小为 5 的 vector,初始值全是 2
vector<int> vec4{1, 2, 3, 4, 5}; // 使用花括号初始化 vector,C++11 新特性
```
2. 访问 vector 的元素:
```c++
vec4[3] = 10; // 修改位置为 3 的元素为 10
int element = vec4[2]; // 获取位置为 2 的元素赋值给变量 element
```
3. 插入和删除 vector 的元素:
```c++
vec1.push_back(1); // 在 vector 尾部添加一个元素 1
vec1.insert(vec1.begin(), 2); // 在 vector 头部插入一个元素 2
vec1.pop_back(); // 在 vector 尾部删除一个元素
vec1.erase(vec1.begin()); // 删除 vector 头部的元素
```
4. 计算 vector 的大小:
```c++
int size = vec4.size(); // 获取 vector 的元素个数
bool empty = vec4.empty(); // 判断 vector 是否为空
```
这些是 vector 的基本使用方法,还有很多方法都可以查看 C++ 标准库的文档。
阅读全文