处理多维数组时,是否可以将两种不同的变量类型分配给数组?
例如,您有数组
例如,您有数组
int example[i][j]
,是否可以让i
和j
成为两种完全不同的变量类型,如int和string?int example[i][j]
,是否可以让i
和j
成为两种完全不同的变量类型,如int和string?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;
不,C++只允许整数类型(例如:int、long、unsigned int、size_t、char)作为索引。
如果您想使用字符串作为索引,可以尝试使用std::map<std::string,mytype>
,但是将其扩展到二维会变得复杂。
不可以,你只能使用整数类型作为索引。
array[name][score]
访问第三个数据吗? - JoshDstd::map
来实现这个功能。
map
如果您尝试索引不存在的内容,它将自动创建一个带有默认值的内容。 - Mark Ransom