如何定义 2D 矩阵 C++ 中的元素数量

问题描述 投票:0回答:1

我无法定义二维矩阵中一行的元素数量。

我尝试了下面的代码。

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++ arrays matrix
1个回答
0
投票

你不能用数组来做到这一点。数组具有不变的固定大小,并且不存储它们已初始化的元素数量。相反,您应该使用一个数据结构来存储已添加的元素数量。在 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';
}
© www.soinside.com 2019 - 2024. All rights reserved.