#include <iostream>
#include <set>
using namespace std;

int main() {
set<int> s;
s.insert(1);
//返回值为pair<set<int>::iterator, bool>
//迭代器表示该元素的位置
cout << *s.insert(1).first << endl;
cout << s.insert(1).second << endl;
//输出1 和 0
}


#include <iostream>
#include <set>
#include <string>
#include <string.h>

using namespace std;

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;
}

C++ std::set insert 怎么得到 返回值 是什么_#include