C++ vector<vector<my_type>>详解:理解二维向量及其应用
C++ vector<vector<my_type>>详解:理解二维向量及其应用
在C++中,'vector<vector<my_type>>' 表示一个二维向量,也称为向量数组。它可以看作是一个向量,其中每个元素都是另一个向量。这种数据结构非常适合表示矩阵、二维数组或其他需要用行和列组织的数据。
什么是'vector<vector<my_type>>'?
'vector<vector<my_type>>' 中的每个'<my_type>'代表一种数据类型,可以是int、float、string或自定义的结构体等。
- 外层的 'vector' 表示一个包含多个向量的向量。* 内层的 'vector' 表示一个包含多个 'my_type' 类型元素的向量。
如何使用二维向量?
以下是使用 'vector<vector<my_type>>' 的基本步骤:
-
声明:
cpp std::vector<std::vector<my_type>> matrix; -
初始化: 可以通过多种方式初始化二维向量,例如: * 使用 'resize()' 函数指定大小并初始化所有元素:
cpp int rows = 3; int cols = 4; matrix.resize(rows, std::vector<my_type>(cols));* 使用嵌套循环逐个元素赋值:cpp for (int i = 0; i < rows; i++) { matrix.push_back(std::vector<my_type>()); // 添加新行 for (int j = 0; j < cols; j++) { my_type element; // 创建 my_type 对象 matrix[i].push_back(element); // 添加元素到行 } } -
访问元素: 使用类似于二维数组的语法访问二维向量的元素:
cpp int value = matrix[1][2].data; -
操作元素: 可以像操作普通变量一样操作二维向量的元素:
cpp matrix[0][0].data = 10;
示例:cpp#include #include
struct my_type { int data; // 其他成员变量};
int main() { // 声明一个二维向量 std::vector<std::vector<my_type>> matrix;
// 初始化二维向量 (3x4) int rows = 3; int cols = 4; matrix.resize(rows, std::vector<my_type>(cols));
// 赋值 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { matrix[i][j].data = i * cols + j; } }
// 打印二维向量 for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { std::cout << matrix[i][j].data << ' '; } std::cout << std::endl; }
return 0;}
总结
'vector<vector<my_type>>' 提供了一种灵活且强大的方式来处理二维数据。通过理解其工作原理和使用方法,可以更有效地使用C++进行编程。
原文地址: https://www.cveoy.top/t/topic/WWA 著作权归作者所有。请勿转载和采集!