在C++中,std::vector
是一个非常强大的容器,可以动态地管理数组的大小,并且提供了许多方便的操作。相比于传统的数组,std::vector
更加灵活和安全。本文将介绍如何初始化一维和二维的 std::vector
数组,并展示一些常见的用法。
1. 一维 std::vector
的初始化
1.1 默认初始化
默认情况下,std::vector
会被初始化为空。
#include <vector>
using namespace std;
int main() {
vector<int> vec; // 默认初始化,vec为空
return 0;
}
1.2 指定大小初始化
可以指定 std::vector
的大小,所有元素会被默认初始化为 0(对于基本类型)。
vector<int> vec(10); // 初始化大小为 10,所有元素为 0
1.3 指定大小和初始值
可以在初始化时指定大小和初始值。
vector<int> vec(10, 5); // 初始化大小为 10,所有元素为 5
1.4 使用列表初始化
可以使用花括号 {}
进行列表初始化。
vector<int> vec = {
1, 2, 3, 4, 5}; // 初始化包含 5 个元素
1.5 从数组初始化
可以从一个已有的数组初始化 std::vector
。
int arr[] = {
1, 2, 3, 4, 5};
vector<int> vec(arr, arr + 5); // 使用数组初始化
2. 二维 std::vector
的初始化
二维 std::vector
实际上是一个 std::vector
的 std::vector
,即 vector<vector<T>>
。
2.1 默认初始化
默认情况下,二维 std::vector
为空。
vector<vector<int>> matrix; // 默认初始化,matrix为空
2.2 指定大小初始化
可以指定行数和列数,所有元素会被默认初始化为 0。
int rows = 3, cols = 4;
vector<vector<int>> matrix(rows, vector<int>(cols)); // 3 行 4 列,所有元素为 0
2.3 指定大小和初始值
可以在初始化时指定大小和初始值。
int rows = 3, cols = 4;
vector<vector<int>> matrix(rows, vector<int>(cols, 5)