#include<iostream>
#include<map>
#include<list>
using namespace std;
struct Key
{
public:
// Key();
Key(int v);
Key(string s);
Key(int v,string s);
int _key;
string str;
/*重载<作为成员函数不行,两个操作数都要求是const*/
//bool operator <(const Key& key);
};
//重载<用于map键值的排序
bool operator <(const Key &key1,const Key &key2)
{
if(key1.str<key2.str)
return true;
else
return false;
}
Key::Key(int v,string s)
{
_key=v;
str=s;
}
Key::Key(string s)
{
str=s;
}
Key::Key(int v)
{
_key=v;
}
//此函数用于list的自定义sort函数
bool CmpareRull(Key& k1,Key& k2)
{
if(k1.str<k2.str)
return true;
else
return false;
}
int main()
{
Key k1(1,"abc");
Key k2(2,"def");
Key k3(1);
Key k4(3,"abc");
list<Key> likey;
likey.push_back(k1);
likey.push_back(k2);
likey.push_back(k3);
likey.push_back(k4);
likey.sort(CmpareRull);
likey.unique();
map<Key,string> classmap;
classmap[k1]=k1.str;
classmap[k2]=k2.str;
cout<<classmap[k4];
return 0;
}
map或list的元素为结构体
最新推荐文章于 2022-08-10 10:39:10 发布