c++ vector重新初始化
时间: 2023-07-03 09:32:03 浏览: 168
在 C++ 中,可以使用以下方式对 `vector` 进行重新初始化:
1. 使用默认构造函数重新初始化:
```
vector<int> vec = {1, 2, 3}; // 定义并初始化一个 vector
vec = vector<int>(); // 使用默认构造函数重新初始化 vector
```
在这个例子中,当你将 `vector<int>` 类型的变量 `vec` 赋值为 `vector<int>()` 时,它的值将被重新设置为空的 `vector`。
2. 使用 `clear` 函数清空 vector:
```
vector<int> vec = {1, 2, 3}; // 定义并初始化一个 vector
vec.clear(); // 使用 clear 函数清空 vector
```
在这个例子中,当你调用 `vec.clear()` 函数时,`vector<int>` 类型的变量 `vec` 的值将被清空,即不包含任何元素。
需要注意的是,使用默认构造函数重新初始化 `vector` 会完全销毁原有的元素,并重新分配内存,因此可能会导致性能问题。而使用 `clear` 函数只是清空 `vector` 中的元素,但是并不会销毁内存空间,因此更加高效。
相关问题
C++ vector如何初始化
C++中的vector是一个动态数组,可以根据需要自动调整大小。vector的初始化有多种方式,下面是几种常见的初始化方法:
1. 默认初始化:可以使用无参构造函数来创建一个空的vector,如下所示:
```cpp
std::vector<int> myVector; // 创建一个空的int类型的vector
```
2. 指定大小初始化:可以使用带有一个整数参数的构造函数来指定vector的大小,并将所有元素初始化为默认值,如下所示:
```cpp
std::vector<int> myVector(5); // 创建一个包含5个int类型元素的vector,每个元素都被初始化为0
```
3. 指定大小和初始值初始化:可以使用带有两个参数的构造函数来指定vector的大小和初始值,如下所示:
```cpp
std::vector<int> myVector(5, 10); // 创建一个包含5个int类型元素的vector,每个元素都被初始化为10
```
4. 列表初始化:可以使用花括号来进行列表初始化,如下所示:
```cpp
std::vector<int> myVector = {1, 2, 3, 4, 5}; // 创建一个包含5个int类型元素的vector,并分别初始化为1、2、3、4、5
```
5. 使用迭代器初始化:可以使用迭代器来初始化vector,将另一个容器中的元素复制到新的vector中,如下所示:
```cpp
std::vector<int> anotherVector = {1, 2, 3, 4, 5};
std::vector<int> myVector(anotherVector.begin(), anotherVector.end()); // 将anotherVector中的元素复制到myVector中
```
这些是vector的一些常见初始化方法,你可以根据自己的需求选择适合的初始化方式。
c++vector的初始化
以下是两种C++中二维向量的初始化方法:
1. 使用指定大小和初始值初始化:
```cpp
int n = 3; // 行数
int m = 4; // 列数
int initial_value = 0;
vector<vector<int>> arr(n, vector<int>(m, initial_value));
```
2. 使用默认构造函数初始化:
```cpp
vector<vector<int>> arr; // 空的二维向量
```