map使用结构体作为key结构体内含有数组
问题
struct作为map的key,报错
解:结构体内部重定义<,==号;后续问题,结构体里面含有数组,不能按照==定义的位移确定键值,也就是数组相同,map仍然会继续插入新元素:map里面使用equal等函数,再加上数组比较复杂,最好还是自己写一个搜索判断的函数,花很多时间搜索,但是不理解map的内部机理没有用。
struct作为map的key
当结构体内部没有数组,只有基本类型时可用。注意,重定义运算符必须使用const,因为是map内部要求默认的
struct k{
// int a[2]={0};
int s=0;
bool operator <(const k& mm)const{
return s<mm.s;
}
bool operator ==(const k& mm)const{
return s==mm.s;
}
}k0;