【发布时间】:2022-01-03 00:14:14
【问题描述】:
来自 python 我很难理解数据结构类型及其在 c++ 中的声明。
要在 python 中声明和填充多维数组,您只需作为示例:
arr = [[],[]]
for i in range(2):
arr[i].append(1)
C++ 中的等价物是什么?我必须使用向量还是数组?
干杯
【问题讨论】:
标签: c++11
来自 python 我很难理解数据结构类型及其在 c++ 中的声明。
要在 python 中声明和填充多维数组,您只需作为示例:
arr = [[],[]]
for i in range(2):
arr[i].append(1)
C++ 中的等价物是什么?我必须使用向量还是数组?
干杯
【问题讨论】:
标签: c++11
C/C++ 中的数组是编译时固定大小的数据结构。您通过
声明它们<data type> <variable name> <dimensions>;
可以是任何你想要的。
也很明显。
你声明一个数组
int numbers[5];
或
double weights[3][2];
然后,在 C++ 中有来自 STL 的容器。 std::vector<T> 的行为类似于一个动态大小的数组,与之对应的 std::array<T> 是一个编译时数组,就像上面提到的那样,但具有容器语义,它是一组超级普通数组。
一个多维向量会被声明为
std::vector<std::vector<int>> v;
这只是声明一个变量并对其进行初始化 - 准确地说是一个二维数组 - 稍后您可以根据需要调整它的大小。
还请注意,vector 将允许您实际拥有锯齿状数组,而不是矩形数组,普通数组总是强制执行。那是因为您可以将不同大小的向量作为元素推送到您的 v 中。
您应该阅读有关 C++ 中的数据结构、容器和算法的更多信息。 C++ 参考是一个非常好的参考站点。 c++ 页面本身有很多好的指针。
【讨论】:
int counts[n];。