vector 赋初值
时间: 2024-07-08 18:00:46 浏览: 176
`std::vector` 是 C++ 标准库中的动态数组,它提供了在运行时动态调整大小的能力。当你需要初始化一个 `vector` 时,有几种常见的方法:
1. **直接赋值**:
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5}; // 使用列表初始化
```
2. **使用构造函数**:
```cpp
std::vector<int> vec(10); // 创建一个能容纳10个元素的初始为空的 vector
vec.resize(5); // 后续手动设置大小
vec.push_back(1); // 添加元素到末尾
// 或者使用范围初始化(C++11及更高版本)
std::vector<int> vec(1, 0); // 创建一个包含单个元素0的 vector
```
3. **使用`fill`函数**:
```cpp
std::vector<int> vec;
vec.reserve(10); // 预先分配空间
std::fill(vec.begin(), vec.end(), 0); // 将所有元素填充为0
```
4. **使用`generate`函数**:
```cpp
std::vector<int> vec;
std::iota(vec.begin(), vec.end(), 1); // 生成一个从1开始的序列
```
相关问题
c++ vector 如何赋初值
在C++中,`std::vector` 是一个动态数组,用于存储同类型的数据。你可以通过多种方式为 `vector` 赋初值,这里列出一些常见的方法:
1. **空初始化**:
```cpp
std::vector<int> vec; // 创建一个空的vector,其大小默认为0
```
2. **使用初始大小并指定元素**:
```cpp
std::vector<int> vec(5); // 创建一个包含5个默认值(通常是零)的int向量
vec = {1, 2, 3, 4, 5}; // 或者直接初始化为特定值
```
3. **使用构造函数和迭代器**:
```cpp
std::vector<int> vec({6, 7, 8, 9, 10}); // 使用括号列表创建
```
4. **使用范围-based for循环填充**:
```cpp
std::vector<int> vec;
for (int i = 0; i < 10; ++i) {
vec.push_back(i);
}
```
5. **使用`reserve()`方法预分配空间**:
```cpp
std::vector<int> vec;
vec.reserve(10); // 预先分配10个位置,后续添加不会触发扩容
for (int i = 0; i < 10; ++i) {
vec.push_back(i);
}
```
每个方法的具体用法取决于你的需求和代码风格。如果你需要了解更多关于 `vector` 的操作,如如何访问元素、修改元素等,请告诉我,我会给出更多详细信息。
vector<vector<int>>赋初值
可以使用以下代码来赋初值:
```
vector<vector<int>> v{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
```
其中,v是一个二维vector,包含三个一维vector,每个一维vector包含三个int型元素,值分别为1~9。你还可以使用循环语句来赋初值,例如:
```
vector<vector<int>> v(3, vector<int>(3, 0));
for(int i=0; i<3; i++) {
for(int j=0; j<3; j++) {
v[i][j] = (i+1)*10 + j+1;
}
}
```
在这个例子中,我们先创建了一个3x3的二维vector,初始值都为0。接着循环遍历这个vector,将每个元素的值设置为在矩阵中的位置加上10,例如第一个元素位置为(0, 0),值为11。
阅读全文