矩阵[C++]的差异初始化

Difference initializing of a matrix [C++]

本文关键字:初始化 C++ 矩阵      更新时间:2023-10-16

我不知道之间有什么区别

std::vector< std::vector<bool> > matrix;

bool matrix[n][m];

我可以使用.size()来查找它们的行和列吗?

谢谢。

有一个巨大的区别:

std::vector< std::vector<bool> > matrix;-定义类型为std::vector的对象,该对象可能包含bool-s的其他std::vector

这使用由标准库定义的容器。它有一个庞大的API,有多种方法可以使用。CCD_ 6就是其中之一。

bool matrix[n][m];-定义m布尔的n数组的数组。

这里,matrix本身不是一个Object,而是一个基元类型。这里不能使用matrix.size(),但可以使用sizeof(matrix)/sizeof(matrix[0][0])来获取其中的布尔总数。

我建议您尽可能多地使用标准库容器

正如一些正确的评论所建议的那样,您也可以使用std::array而不是基元数组,这毕竟是它们的作用:)