vector<int> a;
时间: 2025-08-21 19:45:24 浏览: 7
### C++ 中 `vector<int>` 的用法及常见问题
#### 创建和初始化向量
`std::vector<int>` 是一个动态数组,能够存储任意数量的整数。创建并初始化该类型的对象有多种方式:
```cpp
// 默认构造函数创建空向量
std::vector<int> vec;
// 使用初始大小创建并向量填充特定值
std::vector<int> vec(10, 7); // 向量含有十个元素,每个都设置为7
// 利用列表初始化语法来定义具体数值序列
std::vector<int> vec{1, 2, 3, 4};
```
#### 添加新元素到向量
可以通过调用成员方法像 `push_back()` 或者使用范围插入操作符来进行扩展。
```cpp
vec.push_back(5);
vec.insert(vec.end(), anotherVec.begin(), anotherVec.end());
```
#### 访问现有数据项
访问单个元素通常通过下标运算符完成;而遍历整个集合则适合采用迭代器或基于范围的for循环结构[^1]。
```cpp
// 下标索引获取指定位置处的数据条目
int firstElement = vec[0];
// 迭代器遍历所有组件
for (auto it = vec.begin(); it != vec.end(); ++it){
std::cout << *it;
}
// 基于范围的for语句实现相同功能更简洁地表达形式
for(const auto& elem : vec){
std::cout << elem;
}
```
#### 修改已存入的内容
更改已有记录可通过直接赋值给相应的位置或者利用某些算法库提供的工具函数达成目的。
```cpp
if (!vec.empty()){
vec.front() += 1; // 对首个项目加一处理
vec.back() *= 2; // 将最后一个乘二倍
}
std::fill_n(vec.begin()+startPos, count, newValue); // 替换连续区间内的若干单元格内容
```
#### 删除不需要的部分
移除末端节点只需简单地弹出即可;对于内部片段,则需先定位再施行擦除动作。
```cpp
while(!vec.empty()) {
vec.pop_back();
}
// 定位目标子串起点后实施切除作业
auto pos = find_if(...);
if(pos!=vec.end())
vec.erase(pos,pos+howManyToRemove);
```
#### 处理异常情况下的安全措施
考虑到边界条件以及潜在错误源,在实际编码过程中应当加入必要的防护机制以保障程序稳定性。
```cpp
try{
// 可能引发越界异常的操作
}catch(std::out_of_range const& ex){
cerr<<"Error:"<<ex.what()<<endl;
}
```
阅读全文
相关推荐



















