zoukankan      html  css  js  c++  java
  • (C/C++学习)30.STL之set容器

    说明:set 中所有元素都会根据元素的键值自动被排序。set 的元素不像 map 那样可以同时拥有实值和键值,set 的元素即是键值又是实值。set 不允许两个元素有相同的键值。不可以通过 set 的迭代器改变 set 元素的值,因为 set 元素值就是其键值,关系到 set 元素的排序规则。如果任意改变 set 元素值,会严重破坏 set 组织。换句话说,set 的 iterator 是一种 const_iterator。

    注意:multiset 特性及用法和 set 完全相同,唯一的差别在于它允许键值重复。set 和 multiset的底层实现是红黑树,红黑树为平衡二叉树的一种。

    1.构造函数

    1 set<T> st;//set 默认构造函数:
    2 mulitset<T> mst; //multiset 默认构造函数:
    3 set(const set &st);//拷贝构造函数

    2.赋值操作

    1 set& operator=(const set &st);//重载等号操作符
    2 swap(st);//交换两个集合容器

    3.set大小操作

    1 size();//返回容器中元素的数目
    2 empty();//判断容器是否为空

    4.插入和删除操作

    1 insert(elem);//在容器中插入元素
    2 clear();//清除所有元素
    3 erase(pos);//删除 pos 迭代器所指的元素,返回下一个元素的迭代器
    4 erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器
    5 erase(elem);//删除容器中值为 elem 的元素

    5.查找操作

    1 find(key);//查找键 key 是否存在,若存在,返回该键的元素的迭代器;若不存在,返回 set.end()
    2 count(key);//查找键 key 的元素个数
    3 lower_bound(keyElem);//返回第一个 key>=keyElem 元素的迭代器
    4 upper_bound(keyElem);//返回第一个 key>keyElem 元素的迭代器
    5 equal_range(keyElem);//返回容器中 key 与 keyElem 相等的上下限的两个迭代器
  • 相关阅读:
    [转载]JavaScript世界的一等公民 函数
    JavaScript基础知识词法结构
    JavaScript触发asp.net服务器端控件事件
    WinForm窗体间传值大全
    快速导入Excel
    让虚拟机支持USB HDD 启动
    常见的mysql导出excel工具介绍
    silverlight 播放器,丑丑版
    快速导出Excel
    一个C#编写QQ接口软件QQ协议(转)
  • 原文地址:https://www.cnblogs.com/tuihou/p/12419420.html
Copyright © 2011-2022 走看看