您的位置:首页 > 其它

std::map find 自定义类型元素

2014-03-13 15:52 316 查看
1、定义结构体

struct StructStu
{
int _num1;
int _num2;
int _num3;

StructStu(int num1,int num2,int num3)
{
_num1 = num1;
_num2 = num2;
_num3 = num3;
}
};

2、书写自定义类型的运算符函数
class StructStuCmp
{
public:
bool operator() (const StructStu &left ,const StructStu& right) const
{
if(left._num1 != right._num1)
return left._num1 < right._num1;
if(left._num2 != right._num2)
return left._num2 < right._num2;
if(left._num3 != right._num3)
return left._num3 < right._num3;
return false;
}
};
3、测试使用
std::map<StructStu ,std::string ,StructStuCmp> StuStrMap;
StructStu stu1(1,2,3);
StructStu stu2(2,3,4);
StructStu stu3(3,4,5);
StuStrMap.insert(make_pair(stu1,std::string("test1")));

auto strMap = StuStrMap.find(stu1);
if(strMap != StuStrMap.end())
{
StructStu stuTest = strMap->first;
std::string str = strMap->second;
cout<<stuTest._num1<<endl;
cout<<stuTest._num2<<endl;
cout<<stuTest._num3<<endl;
cout<<str<<endl;
}else
{
cout<<"error"<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  map
相关文章推荐