【以等宽字体的形式展现出来,文本中的空白符(比如空格和换行符)都会显示出来】_h5文本原样输出
赞
踩
set容器存放内置数据类型 如int char等,可以用*p (p是迭代器) 的方式
但是存放自定义的数据类型,比如类,*it就不行了
问题已经解决。。。*it外面需要加上括号括起来 。。晕死。
- #include<iostream>
- #include<string>
- #include<set>
- #include<algorithm>
- using namespace std;
-
-
- void test(){
- class Pet{
- public:
- int age;
- string name;
- string type;
- Pet(int age,string name,string type){
- this->age=age;
- this->name=name;
- this->type=type;
- }
- };
- Pet p1(3,"polo","cat");
- Pet p2(10,"aimi","dog");
- Pet p3(9,"tom","dog");
- Pet p4(4,"niangao","cat");
- Pet p5(3,"lily","dog");
-
- //类的排序规则 pet
- class petcom {
- public:
- // 仿函数 重载加号
- bool operator()(const Pet &p1,const Pet &p2) {
- if(p1.age==p2.age){
- return p1.type>p2.type;
- }
- else{
- return p1.age>p2.age;
- }
- }
- };
- set<Pet,petcom>s;
- s.insert(p1);
- s.insert(p2);
- s.insert(p3);
- s.insert(p4);
- s.insert(p5);
- for(auto it=s.begin();it!=s.end();it++){
- cout<<it->age<<" "<<it->name<<" "<<it->type<<endl;
- }
- }
- int main(){
- test();
- system("pause");
- return 0;
- }
将宠物按照年龄 降序排列,如果年龄相同按照种类(dog在cat前面)
但是遍历时如果写成*it.age *it.name就会报错。必须用指针。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。