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;
}
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;
}
相关文章推荐
- Java_Map插入自定义数据类型保证元素唯一
- 使用用户自定义类型作为std::map的…
- std::map 自定义类做为key时 find operator< 的正确写法
- 关于std::map中的find和[]的问题
- 【转载】关于std::map中的find和[]的问题
- 元素为自定义复合结构时 map,set 如何处理重复 key 及排序?
- 如何在“元素为自定义类型的vector”中查找指定的元素?
- 解决 Mybatis 元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result*,association*,collection*,discriminat
- 在MapReduce的Map和Reduce过程中使用自定义数据类型
- 4-4 求自定类型元素的平均 (10分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。 函数接口定义: ElementType Aver
- find_if和函数对象结合实现对自定义类型vector的查找
- 【map】【unordered_map】map和unordered_map中键类型为自定义类型的操作
- spring mvc 项目运行报错:元素类型为 "resultMap" 的内容必须匹配 "(constructor?,id*,result
- deque的中find自定义的类型
- map以自定义类型当Key(键值)
- 用仿函数实现以std::string作为key的map自定义排序
- 6-4 求自定类型元素的平均(10 分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。
- 关于set或map的key使用自定义类型的问题
- C++语法基础--关联容器--map(二)--查找并读取map中的元素count(),find()与 从map对象中删除元素erase()
- EMF介绍系列(四、枚举类型、自定义类型和Map)