c++中vector的初始化
时间: 2023-11-08 20:00:45 浏览: 97
c中vector的初始化有多种方式。最常用的是默认初始化,即创建一个空的vector容器。另一种方式是通过拷贝复制,即将一个已存在的vector容器作为参数,创建一个新的vector容器,两者内容完全相同。还可以通过直接赋值构造,即通过列表中元素的构造来初始化vector容器,需要注意列表中元素的类型必须与vector的元素类型相同。通过数组构造也是一种初始化方式,可以将数组的一部分或整个数组作为参数来初始化vector容器。最后一种方式是通过赋值初始化元素,可以指定初始值和元素个数来初始化vector容器。
相关问题
C++中vector初始化的方法
在C++中,vector是一个非常有用的容器,可以存储各种类型的数据。下面是一些常见的vector初始化方法:
1.使用数组初始化vector:
int x[] = {1, 2, 3};
std::vector<int> v(x, x + sizeof(x) / sizeof(x)); // or std::vector<int> v1(std::begin(x), std::end(x)); // or c++ 11, vs12 not work
std::vector<int> v({1, 2, 3})
2.使用默认值初始化vector:
std::vector<int> v(10); // 初始化一个大小为10的vector,每个元素都是0
3.使用指定值初始化vector:
std::vector<int> v(10, 5); // 初始化一个大小为10的vector,每个元素都是5
4.使用另一个vector初始化vector:
std::vector<int> list1 = {1, 2, 3};
std::vector<int> list2(list1); // 拷贝复制
std::vector<int> list3 = list1; // 拷贝复制
5.使用二维vector:
std::vector<std::vector<int>> v(5, std::vector<int>(6, 0)); // 相当于 int v={0}
C++03 vector初始化方法
C++03 中的 `vector` 可以通过多种方式进行初始化。这里有一些常见的方式:
1. **默认初始化**:
使用无参数的构造函数创建一个空的 vector。例如,存储整数的向量可以这样初始化:
```cpp
std::vector<int> empty_vector; // 默认初始化为空
```
2. **直接初始化**:
当你知道要添加什么元素时,可以直接传递给构造函数。例如,一次性添加几个整数:
```cpp
std::vector<int> int_vector = {1, 2, 3, 4, 5}; // 直接初始化
```
3. **范围初始化** (从 C++11 开始支持):
如果你有一个已知范围的值,可以使用范围-based for 循环或数组来初始化:
```cpp
std::vector<int> range_init = {0, 10, 20, 30, 40}; // 使用范围初始化
```
4. **列表初始化** (从 C++11 开始支持):
利用花括号语法,你可以创建一个具有特定初始顺序的向量:
```cpp
std::vector<int> list_init = {100, 200, 300, 400}; // 列表初始化
```
5. **复制构造/赋值**:
通过复制另一个已经存在的 vector 来初始化:
```cpp
std::vector<int> copy_from(another_vector); // 复制构造
```
记住,初始化方式的选择取决于具体的需求和性能要求。不同的初始化方法可能影响内存分配和性能。
阅读全文