我正在尝试使用char[]
作为 map
的键:
#include<iostream>
#include<map>
#include<string>
#include<utility>
#include<list>
using namespace std;
int main(void)
{
map<char[10],int> m;
char c[10]={'1','2','3','4','5','6','7','8','9','0'};
m[c]=78;
return 0;
}
但是抛出一个错误:
error: array used as initializer
second(std::forward<_Args2>(std::get<_Indexes2>(__tuple2))...)
即使这样也不起作用:m["abcdefghi"]=4;
如何使用char[]
作为key?我有几个关于 SO 的问题,但它们没有多大帮助。
注意:我已经使用了string
,但出于好奇我想尝试char[]
最佳答案
数组既没有复制构造函数,也没有复制赋值运算符。并且数组没有默认的运算符 <。
使用标准容器std::array
代替数组。
例如
#include<iostream>
#include <array>
#include<map>
int main()
{
std::map< std::array<char, 10>, int> m;
std::array<char, 10> c = {'1','2','3','4','5','6','7','8','9','0'};
m[c]=78;
return 0;
}
关于c++ - 使用字符数组作为映射中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60136080/