什么样的类可以作为map的键值

在学习C++的map时,遇到错误。博客指出,map基于红黑树,键值需要提供'<'操作符。STL的less仿函数要求const比较,所以比较操作符应为友元函数。添加正确实现后,编译问题解决。
摘要由CSDN通过智能技术生成

 在学习C++的map的时候,写了一段代码

 

     
     
     
  1. #include <iostream> 
  2. #include <map> 
  3. using namespace std; 
  4.  
  5. class A 
  6.     public
  7.     A(){cout<<"A created"<<endl;} 
  8.     A(const A& a){cout<<"A created by another a"<<endl;} 
  9.     ~A(){cout<<"A destoried"<<endl;} 
  10.     friend ostream & operator << (ostream& os,const A& a) 
  11.     { 
  12.         os<<"print a"<<endl; 
  13.         return os; 
  14.     } 
  15. }; 
  16. int main(int argc, const char *argv[]) 
  17.  
  18.     A a1; 
  19.     A a2(a1); 
  20.     map<A,A> maa; 
  21.     //make_pair(a1,a2); 
  22.     maa.insert(make_pair(a1,a2)); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值