我无法定义二维矩阵中一行的元素数量。
我尝试了下面的代码。
int Matrix[3][6]{
// Row 1
{1, 2 ,3 ,4, 5},
// Row 2
{1, 2 ,3},
};
// Get number of elements in first row in matrix.
int Row1_amount = sizeof(Matrix[0]) / sizeof(Matrix[0][0]);
下面的代码返回数字 6,这是预定义的列数。我需要它返回 5,即第 1 行中的元素数量,甚至返回 3,即第 2 行中的元素数量。
我知道使用单个数组预定义长度更容易,但这不是我想要实现的目标。
你不能用数组来做到这一点。数组具有不变的固定大小,并且不存储它们已初始化的元素数量。相反,您应该使用一个数据结构来存储已添加的元素数量。在 C++ 中,该数据结构称为
std::vector
。使用 size
方法获取任何单个向量的大小。
这是一个例子
#include <vector>
#include <iostream>
std::vector<std::vector<int>> Matrix = {
// Row 1
{1, 2 ,3 ,4, 5},
// Row 2
{1, 2 ,3},
};
int main()
{
int Row1_amount = Matrix[0].size();
std::cout << Row1_amount << '\n';
}