1.前言
set容器是C++ STL中的容器之一,set容器有以下几个显著的特点:(1)set中的元素的值是唯一的;(2)set的元素是按照特定的顺序进行排列的,默认情况下是按照升序进行排列的;(3)set中的元素不能够被修改,可以通过删除操作将元素删除;C++ stl中的关联容器:map,set,multiset,multimap内部的数据结构为红黑树(RB树)。
2.set的操作
(1)set的所有操作
(2)选取常用的函数进行分析
#include <iostream>
#include <set>
#include <utility>
#include <iomanip>
using namespace std;
bool fcomp(int x1,int x2){
return x1<x2;
}
struct classcomp
{
bool operator()(const int &lhs,const int& rhs) const{
return lhs>rhs;
}
};
//f_construct()函数着重介绍set的构造函数
void f_construct(){
//默认构造函数 explicit set (const key_compare& comp = key_compare(),
// const allocator_type& alloc = allocator_type());
set<int> first;
int myints[]={20,10,30,40,50};
//范围 set (InputIterator first, InputIterator last,
// const key_compare& comp = key_compare(),
// const allocator_type& = allocator_type());
set<int> second(myints,myints+5);
//赋值 set (const set& x);
set<int> third(second);
set<int> fourth(second.begin(),second.end()); //迭代器的范围
set<int,classcomp> fifth(second.begin(),second.end()); //迭代器的范围
cout<<"secon