【发布时间】:2010-10-13 20:24:33
【问题描述】:
在处理多维数组时,是否可以为数组分配两种不同的变量类型...
例如,您有数组int example[i][j],i 和j 有可能是两个完全不同的变量类型,例如 int 和 string?
【问题讨论】:
标签: c++ multidimensional-array
在处理多维数组时,是否可以为数组分配两种不同的变量类型...
例如,您有数组int example[i][j],i 和j 有可能是两个完全不同的变量类型,例如 int 和 string?
【问题讨论】:
标签: c++ multidimensional-array
听起来你在寻找:
std::vector<std::map<std::string, int> > myData1;
或许:
std::map<int, std::map<std::string, int> > myData2;
第一个要求您在使用索引运算符之前将向量调整为适当的大小:
myData1.resize(100);
myData1[25]["hello"] = 7;
...而第二个允许您直接(并且稀疏地)分配给任何元素:
myData2[25]["hello"] = 7;
【讨论】:
map,如果您尝试索引不存在的内容,它将使用默认值自动创建它。
没有。那是不可能的。您可能想考虑使用STL map。
【讨论】:
不,C++ 只允许整数类型(例如:int、long、unsigned int、size_t、char)作为索引。
如果您想按字符串进行索引,可以尝试std::map<std::string,mytype>,但尝试将其扩展到二维会变得复杂。
【讨论】:
不,但您可以使用std::maps。
【讨论】:
不,您只能使用整数类型作为索引。
【讨论】:
array[name][score] 访问第三条数据吗?
不,你不能。不过,您可以使用std::map 来实现这一点。
【讨论】: