首页 > 解决方案 > 如何解释多维向量?

问题描述

我不明白多维向量的语法。

多维数组非常简单。

foo[3][5];

那是 5 个元素,每个元素 3 个元素。

向量并不是那么直截了当。

vector<vector<int>> foo(n);

我对每个 foo 都读过这个,“类型”是向量。将一个向量用于另一个向量的类型如何使它成为二维的?而且,vector<int>仍然与具有标识符的向量相同,具有空整数的向量吗?

标签: c++arraysmultidimensional-arrayvector

解决方案


你对int foo[3][5];正确的理解是:它是一个由三个内部数组组成的外部数组,每个数组包含 5 个整数。

为了这个讨论,过度简化了一点,但如果你认为数组和向量是可互换vector<vector<int>> foo;的,那并没有什么不同。

它是一个外部向量,每个成员都是一个包含整数的内部向量。

因此,就矩阵而言,外部数组/向量是列,内部数组/向量是行。真的没有那么不同。行/列的性质使它成为二维的。

没有任何论据表明实现在幕后非常不同,但是当您使用它们时,它们的行为将彼此非常相似。


推荐阅读