C++学习记录-STL-set和multiset

set容器

Set的特性是:所有元素都会根据元素的键值自动被排序。Set的元素不像map那样可以同时拥有实值和键值,set的元素即是键值又是实值。Set不允许两个元素有相同的键值。

set常用API

  1. 构造函数

    1
    2
    set<类型> 名称;
    set(另一个容器名称);//拷贝构造函数
  2. 赋值操作

    1
    2
    3
    4
    5
    6
    swap(容器,另一个容器);//交换两容器内容
    .insert(元素);//向容器中插入元素
    .clear();//清除所有元素
    .erase(pos);//清除对应位置的元素,返回下一个元素的迭代器
    .erase(beg,end);//清除对应区间的所有元素,返回下一个元素的迭代器
    .erase(elum);//删除值为elum的元素
  3. 查找操作

    1
    2
    3
    4
    5
    .find(key);//查找key键是否存在
    .count(key);//统计key键的个数
    lower_bound(key);//返回第一个<=key的元素迭代器
    upper_bound(key);//返回第一个>key的元素迭代器
    equal_range(key);//返回与key相等的迭代器
  4. 大小操作

    1
    2
    .size();//返回容器中的元素数目
    .empty();//判断容器是否为空
  5. 定义排序顺序

    使用仿函数,在尖括号中作为第二个参数传入。

multiset容器

multiset特性及用法和set完全相同,唯一的差别在于它允许键值重复。