我刚开始学习C++。当我开始感到相当困惑时,我试图掌握多维数组和向量的语法。我知道如何初始化多维数组。看起来很简单:行后跟列。但是,向量更具挑战性。我必须以相同的方式初始化它们还是创建一个向量向量?
原文由 Nikhil Sridhar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚开始学习C++。当我开始感到相当困惑时,我试图掌握多维数组和向量的语法。我知道如何初始化多维数组。看起来很简单:行后跟列。但是,向量更具挑战性。我必须以相同的方式初始化它们还是创建一个向量向量?
原文由 Nikhil Sridhar 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
如果您能够使用 C++11,则可以以类似的方式初始化多维数组和向量的向量。
但是,必须了解一些差异才能访问元素而不会遇到未定义的行为。
对于多维数组,需要连续分配数组元素的内存。对于向量的向量,元素的内存很可能是不相交的。
a1
的内存:a2
(最有可能)的内存:此外,可以定义每行的列数不同的向量的向量。
在多维数组中,保证每一行的列数相同。
鉴于上述多维数组
a1
,a1[1][2]
将是有效元素,而a1[2][3]
将是无效元素。在向量向量的情况下,使用上述行,a2[1][2]
不是有效元素,而a2[2][3]
是有效元素。