概述
首先知道map索引快的原因是会根据key值自动排序,底层原理是红黑树。
当基础类型作为key可能无法满足索引条件时(有可能根据多个条件进行排序,比如大家都距离终点100米但还是需要排序),可以使用自定义结构体做为key值索引,以下为自定义类型作为key值时自定义排序规则,本质是用重载运算符<号实现。
struct MyKey{
double achievement;
string name;
bool operator < (const MyKey& mapkey) const{
if(achievement > mapkey.achievement){
return false;
}
else if(achievement < mapkay.achievement){
return true;
}
else if(name < maykey.name){
return true;
}
return false;
}
};
这样插值之后就会根据自定义的规则自动排序了。
最后
以上就是要减肥抽屉为你收集整理的C++map联合主键的使用(自定义结构体作为key值)的全部内容,希望文章能够帮你解决C++map联合主键的使用(自定义结构体作为key值)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复