如何在像PHP这样的C ++中实现不连续的动态矩阵?

时间:2016-08-27 13:34:43

标签: php c++ matrix data-structures

在php中你可以创建像$mat1 = array();这样的矩阵,而不知道数组的大小,并在非顺序索引中添加元素,如第一个$mat1[1][3] = x然后$mat1[2][0] = y,依此类推。如何在C ++中实现? 一维数组也一样吗?

2 个答案:

答案 0 :(得分:4)

PHP中的内容是关联数组;它在C ++中被称为std::map<>。如果你想要一个int - &gt; int - &gt;字符串映射,你需要:

std::map< int, std::map< int, std::string > > mat1;

请注意,这不会保留键的插入顺序。

如果您事先不知道维数,则可以创建一个递归数据结构,其中每个值都是value_type或map。

答案 1 :(得分:2)

From the PHP manual

  

PHP中的数组实际上是一个有序的映射。映射是将值与键关联的类型。此类型针对多种不同用途进行了优化;它可以被视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。

请点击此处:http://www.cplusplus.com/reference/map/map/ 并且:how to use stl::map as two dimension array