C++ std::set insert 怎么得到 返回值 是什么
Posted 软件工程小施同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ std::set insert 怎么得到 返回值 是什么相关的知识,希望对你有一定的参考价值。
#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
}
STL中set的insert操作的返回值_可可西里-CSDN博客
如
#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 怎么得到 返回值 是什么的主要内容,如果未能解决你的问题,请参考以下文章
linux C++获取两个std::set容器差异(容器元素差异)(容器元素差别)std::set_differencestd::inserter