在php中你可以创建像$mat1 = array();
这样的矩阵,而不知道数组的大小,并在非顺序索引中添加元素,如第一个$mat1[1][3] = x
然后$mat1[2][0] = y
,依此类推。如何在C ++中实现?
一维数组也一样吗?
答案 0 :(得分:4)
PHP中的内容是关联数组;它在C ++中被称为std::map<>
。如果你想要一个int - &gt; int - &gt;字符串映射,你需要:
std::map< int, std::map< int, std::string > > mat1;
请注意,这不会保留键的插入顺序。
如果您事先不知道的维数,则可以创建一个递归数据结构,其中每个值都是value_type或map。
答案 1 :(得分:2)
PHP中的数组实际上是一个有序的映射。映射是将值与键关联的类型。此类型针对多种不同用途进行了优化;它可以被视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。
请点击此处:http://www.cplusplus.com/reference/map/map/ 并且:how to use stl::map as two dimension array