set基本概念


#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout< s1;
//插入数据,只有insert方式
s1.insert(10);
s1.insert(40);
s1.insert(20);
s1.insert(40);
s1.insert(30);
//set容器特点: 所有元素插入时候自动被排序
//set容器不允许插入重复值
PrintfSet(s1);
//拷贝构造
sets2(s1);
PrintfSet(s2);
//赋值操作
sets3;
s3 = s1;
PrintfSet(s3);
}
int main()
{
test();
cout << "Hello World!" << endl;
return 0;
}


#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout< s1;
//插入数据,只有insert方式
s1.insert(10);
s1.insert(40);
s1.insert(20);
s1.insert(40);
s1.insert(30);
//set容器特点: 所有元素插入时候自动被排序
//set容器不允许插入重复值
PrintfSet(s1);
if(s1.empty())
{
cout<<"s1 is empty"<s2;
s2.insert(100);
s2.insert(200);
s2.insert(300);
s2.insert(400);
//swap
cout<<"before swap"< 

#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout< s1;
//插入数据,只有insert方式
s1.insert(10);
s1.insert(40);
s1.insert(20);
s1.insert(40);
s1.insert(30);
//set容器特点: 所有元素插入时候自动被排序
//set容器不允许插入重复值
PrintfSet(s1);
s1.erase(s1.begin());
PrintfSet(s1);
s1.erase(30);
PrintfSet(s1);
//s1.erase(s1.begin(),s1.end());
s1.clear();
}
int main()
{
test();
cout << "Hello World!" << endl;
return 0;
}


#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout< s1;
//插入数据,只有insert方式
s1.insert(10);
s1.insert(40);
s1.insert(20);
s1.insert(40);
s1.insert(30);
//set容器特点: 所有元素插入时候自动被排序
//set容器不允许插入重复值
PrintfSet(s1);
set::iterator pos = s1.find(30);
if(pos != s1.end())
{
cout<<"have finded"< 

#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout< s1;
//插入数据,只有insert方式
pair::iterator,bool> ret = s1.insert(10);
if(ret.second)
{
cout<<"insert success at first"<m1;
//允许插入重复值
m1.insert(10);
m1.insert(10);
m1.insert(10);
m1.insert(10);
for(multiset::iterator it = m1.begin();it != m1.end();it++)
{
cout<<*it<<" ";
}
cout< 

#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout<p("Tom",20);
cout<<"name is "<p2 = make_pair("Jin",21);
cout<<"name is "< 

#include
#include
using namespace std;
void PrintfSet(set&s)
{
for(set::iterator it = s.begin();it != s.end();it++)
{
cout<<*it<<" ";
}
cout<v2;
}
};
void test()
{
sets1;
s1.insert(10);
s1.insert(40);
s1.insert(30);
s1.insert(50);
s1.insert(20);
PrintfSet(s1);
//指定排序规则为从大到小
sets2;
s2.insert(10);
s2.insert(40);
s2.insert(30);
s2.insert(50);
s2.insert(20);
for(set::iterator it = s2.begin();it != s2.end();it++)
{
cout<<*it<<" ";
}
cout< 
#include
#include
using namespace std;
#include
//set容器排序,存放自定义数据类型
class Person
{
public:
Person(string name,int age)
{
this->m_name = name;
this->m_age = age;
}
string m_name;
int m_age;
};
class MyCompare
{
public:
bool operator()(const Person&p1, const Person& p2)
{
//按照年龄进行降序
return p1.m_age > p2.m_age;
}
};
void test()
{
//指定排序规则为从大到小
sets;
//创建Person对象
Person p1 ("liubei",23);
Person p2("zhangfei", 21);
Person p3("guanyu", 22);
Person p4("zhaoyun", 24);
s.insert(p1);
s.insert(p2);
s.insert(p3);
s.insert(p4);
for (set::iterator it = s.begin();it != s.end();it++)
{
cout << "name is " << (*it).m_name << "age is " << (*it).m_age << endl;
}
cout << endl;
}
int main()
{
test();
system("pause");
return 0;
}
