vector<int> a
时间: 2025-08-21 16:21:02 浏览: 4
### 关于 `std::vector<int>` 的定义和用法
`std::vector<int>` 是 C++ 标准库中的动态数组容器,属于 STL(Standard Template Library)。它提供了自动管理内存的功能,并允许在运行时调整大小。以下是关于其定义和主要用法的详细介绍。
#### 定义
`std::vector<int>` 表示一个存储整数类型的动态数组。可以通过模板参数指定元素类型,在这里是 `int` 类型[^1]。
```cpp
#include <vector>
std::vector<int> vec;
```
上述代码创建了一个名为 `vec` 的空向量对象,初始时不包含任何元素。
#### 初始化方式
可以使用多种方法来初始化 `std::vector<int>`:
1. **默认构造**
创建一个空的向量。
```cpp
std::vector<int> vec; // 默认构造函数
```
2. **带大小的构造**
使用特定数量的相同值填充向量。
```cpp
std::vector<int> vec(5, 0); // 向量中有 5 个值为 0 的元素
```
3. **列表初始化**
利用大括号 `{}` 进行初始化。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5}; // 使用花括号初始化
```
4. **拷贝构造**
基于另一个向量的内容创建新向量。
```cpp
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2(vec1); // 复制 vec1 中的所有元素到 vec2
```
#### 主要成员函数
以下是一些常用的 `std::vector<int>` 成员函数及其功能说明:
1. **访问元素**
- `at(size_t pos)`:通过索引安全地访问元素,越界会抛出异常。
```cpp
int value = vec.at(0);
```
- `operator[]`:直接访问元素,不检查边界。
```cpp
int value = vec[0];
```
2. **修改器**
- `push_back(const T& value)`:在向量末尾添加一个新元素。
```cpp
vec.push_back(6); // 添加一个值为 6 的元素
```
- `pop_back()`:移除最后一个元素。
```cpp
vec.pop_back();
```
3. **容量操作**
- `size()`:返回当前向量中元素的数量。
```cpp
size_t count = vec.size();
```
- `capacity()`:返回分配给向量的最大可能元素数目。
```cpp
size_t cap = vec.capacity();
```
- `reserve(size_t new_cap)`:预留至少能容纳 `new_cap` 个元素的空间。
```cpp
vec.reserve(100);
```
4. **迭代器支持**
可以利用迭代器遍历整个向量。
```cpp
for(auto it = vec.begin(); it != vec.end(); ++it){
std::cout << *it << " ";
}
```
#### 示例程序
下面是一个完整的例子展示如何定义并操作 `std::vector<int>`:
```cpp
#include <iostream>
#include <vector>
int main(){
std::vector<int> numbers = {1, 2, 3};
// 插入新元素
numbers.push_back(4);
// 遍历打印
for(auto num : numbers){
std::cout << num << " "; // 输出: 1 2 3 4
}
// 移除最后一位
numbers.pop_back();
return 0;
}
```
#### 注意事项
根据 Google C++ 编码风格指南建议,应尽量减少作用域范围内的变量声明延迟至实际需要之处,并优先采用现代初始化语法[^2]。
阅读全文
相关推荐




















