set容器(如何判断set.insert()函数的返回值)
//如何判断set.insert()函数的返回值
#include <iostream> using namespace std; #include <set> class Student { public: Student(char*name,int age) { strcpy(this->name,name); this->age=age; } public: int age; char name[64]; }; //仿函数 struct FuncStudent { bool operator()(const Student&left,const Student &right) { if(left.age<right.age)//如果左边的值小就返回真,即从小到大安装年龄排序 { return true; } else { return false; } } }; int main() { Student s1("s1",31); Student s2("s2",22); Student s3("s3",44); Student s4("s4",11); Student s5("s5",31); set<Student,FuncStudent> set1; //如何判断set1.insert()函数的返回值 //typedef pair<iterator, bool> _Pairib; pair<set<Student,FuncStudent>::iterator,bool> pair1=set1.insert(s1); if(pair1.second==true) { cout<<"插入s1成功"<<endl; } else { cout<<"插入s1失败"<<endl; } set1.insert(s2); pair<set<Student,FuncStudent>::iterator,bool> pair5=set1.insert(s5); if(pair5.second==true) { cout<<"插入s5成功"<<endl; } else { cout<<"插入s5失败"<<endl; } //遍历 for(set<Student,FuncStudent>::iterator it=set1.begin();it!=set1.end();it++) { cout<<it->age<<"\t"<<it->name<<endl; } system("pause"); return 0; }