C++之set/multise容器

C++之set/multise容器

set基本概念
C++之set/multise容器_第1张图片

set构造和赋值

C++之set/multise容器_第2张图片

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

C++之set/multise容器_第3张图片

set大小和交换

C++之set/multise容器_第4张图片

#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"<

C++之set/multise容器_第5张图片

set插入和删除

C++之set/multise容器_第6张图片

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

C++之set/multise容器_第7张图片

set查找和统计

C++之set/multise容器_第8张图片

#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"<

C++之set/multise容器_第9张图片

set与multise区别

C++之set/multise容器_第10张图片

#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<

C++之set/multise容器_第11张图片

pair对组的创建

C++之set/multise容器_第12张图片

#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 "<

C++之set/multise容器_第13张图片

set排序

C++之set/multise容器_第14张图片

#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<

C++之set/multise容器_第15张图片

set存放自定义数据

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

C++之set/multise容器_第16张图片

你可能感兴趣的:(C++,c++,java,开发语言)