vector<int> 初始化
时间: 2025-03-16 16:03:47 浏览: 73
### C++ 中 `vector<int>` 的初始化方法
在 C++ 编程语言中,`std::vector` 是一种动态数组容器,能够存储任意类型的元素并支持动态扩展。对于 `vector<int>` 类型的变量,其初始化可以通过多种方式进行。
以下是几种常见的 `vector<int>` 初始化方法:
#### 方法 1:默认构造函数
通过不带参数的方式调用默认构造函数来创建一个空的 `vector<int>` 对象。
```cpp
vector<int> v;
```
此方法会创建一个没有任何元素的向量[^3]。
---
#### 方法 2:使用大括号列表初始化
可以利用初始值列表直接指定向量中的元素。
```cpp
vector<int> v = {1, 2, 3, 4, 5};
```
这种方式会在编译时将 `{1, 2, 3, 4, 5}` 赋予新创建的向量[^1]。
---
#### 方法 3:指定大小和默认值
如果希望创建一个固定大小的向量,并将其所有元素设置为某个特定值,则可按如下方式操作:
```cpp
vector<int> v(n); // 创建 n 个元素,默认值为 0
vector<int> v(n, m); // 创建 n 个元素,每个元素的值均为 m
```
上述代码片段展示了两种情况下的初始化过程,其中第一个例子表示所有的元素都被赋予零作为初值;而第二个则允许自定义填充数值。
---
#### 方法 4:拷贝现有向量
还可以基于另一个已存在的向量实例化一个新的向量副本。
```cpp
vector<int> v0 = {1, 2, 3};
vector<int> v(v0);
```
这里的新建向量 `v` 将完全复制源向量 `v0` 的内容。
---
#### 方法 5:迭代器范围内的元素
当需要从两个指向连续内存区域的输入迭代器之间提取数据以构建新的向量时,这种方法尤为有用。
假设有一个整数数组 p 和 q 表示起始位置与结束位置(不含),那么我们可以这样写:
```cpp
int array[] = {1, 2, 3, 4, 5};
vector<int> v(array, array + sizeof(array)/sizeof(array[0]));
```
或者更一般的形式适用于 STL 容器或其他满足随机访问要求的数据结构上。
---
#### 方法 6:通过算法辅助完成初始化
除了传统的初始化手段外,有时我们可能还需要借助标准库提供的某些工具类功能实现更加灵活多变的效果。比如下面的例子演示了如何运用 `back_inserter()` 结合 `fill_n()` 来生成含有十个相同项值三的序列:
```cpp
vector<int> ivec4;
fill_n(back_inserter(ivec4), 10, 3);
for(auto ite=ivec4.begin(); ite != ivec4.end(); ++ite){
cout << "ivec4: " << *ite << endl;
}
```
这段程序先声明了一个空矢量 `ivec4`, 接着往里面追加十次数字 '3' ,最后遍历打印出来确认结果正确无误[^2]。
---
### 总结
以上列举了几种常用的 `vector<int>` 初始设定技巧,开发者可以根据实际应用场景选取最合适的方案来进行编码实践。
阅读全文
相关推荐


















