基本概念
Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。
构造函数
set c(op):以op为排序准则,产生一个空的set
set c1(c2):复制c2中的元素到c1中
set c(const value_type first, const value_type last):复制[first, last)之间元素构成新集合
set c(const value_type first, const value_type last,op):以op为排序准则,复制[first, last)之间元素构成新集合。
成员函数
1.int size() const:返回容器元素个数
2.bool empty() const:判断容器是否为空,若返回true,表明容器已空
3.insert函数
pair<iterator,bool> insert( x):插入元素x
iterator insert(iterator it,x):在迭代器it处插入元素x
void insert(const value_type *first,const value_type *last):插入[first, last)之间元素
4.erase函数
iterator erase(iterator it):删除迭代器指针it处元素
iterator erase(iterator first,iterator last):删除[first, last)之间元素
size_type erase(const Key& key):删除元素值等于key的元素
5. iterator begin():返回首元素的迭代器指针
- iterator end():返回尾元素的迭代器指针
- reverse_iterator rbegin():返回尾元素的逆向迭代器指针
reverse_iterator rend():返回首元素前一个位置的迭代器指针
const_iterator lower_bound(const Key& key):返回容器中大于等于key的迭代器指针
const_iterator upper_bound(const Key& key):返回容器中大于key的迭代器指针
- int count(const Key& key) const:返回容器中元素等于key的元素的个数
- pair
应用实例
#include <iostream>
#include <set>
int main ()
{
std::set<int> myset;
std::set<int>::iterator it;
// insert some values:
for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90
it = myset.begin();
++it; // "it" points now to 20
myset.erase (it);
myset.erase (40);
it = myset.find (60);
myset.erase (it, myset.end());
std::cout << "myset contains:";
for (it=myset.begin(); it!=myset.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}