热点:

    C++ STL set 使用指南

      [   原创  ]   作者:
    收藏文章 暂无评论

    set是C++ STL中一种非常实用的容器类型。

    1、 声明一个 set 的方法

    2、 value_type 表示 set 容器中存储的元素类型,可以是int、string等基本类型,也可以是自定义的结构体名称。

    3、 STL容器通常按容器名+value_type+名称的方式定义,统一规范命名。

    4、 需包含 set 头文件,使用 include 来引入相关功能支持。

    5、 set中的元素需支持小于比较,其底层通过红黑树实现自动排序与高效查找。

    6、 C++内置的int、string等类型已预先定义了小于号运算符。

    7、 整数在集合中按升序排列,字符串则按照字典顺序进行排序。

    8、 自定义结构体需先掌握运算符重载方法

    9、 一棵红黑树示意图,源自网络。

    10、 set 的多种内置方法功能丰富

    11、 在 set 中插入或删除元素 x,需确保 x 的类型与定义 set 时指定的类型一致。

    12、 时间复杂度为O(log?n),其中n表示集合中元素的个数。

    13、 若 x 不在集合中,则调用 erase(x) 不会产生任何删除操作。

    14、 如图

    15、 begin() 返回指向 set 第一个元素的迭代器,end() 返回指向 set 末尾的迭代器。

    16、 由于是迭代器,需在前面加*才能转为声明时的类型。

    17、 即

    18、 声明了一个字符串集合 s。

    19、 由于迭代器无法直接赋值给字符串类型,因此 `string k = s.begin();` 这样的写法是错误的。

    20、 *解凤丽指出,需添加代码 string k=*s.begin(); 来实现初始字符的引用操作。

    21、 时间复杂度为常数阶

    22、 如图

    23、 判断集合是否为空或获取集合中元素的个数,分别使用 empty() 和 size() 方法。

    24、 所有STL容器均内置了这两个函数功能。

    25、 时间复杂度为常数阶,即O(1)

    26、 如图

    27、 需指出set具有元素唯一性特点

    28、 Set会自动去重,多次添加相同元素也仅保存一次。

    29、 这特点真不错

    30、 若不希望set自动去重,可选择使用multiset,但此处暂不展开说明。

    31、 如图

    32、 clear() 方法用于清空集合中的所有元素。

    33、 时间复杂度为线性阶

    34、 如图

    35、 查找集合中是否存在元素x,若存在则返回指向该元素的迭代器,若不存在则返回指向末尾的迭代器。

    36、 时间复杂度为对数级别。

    37、 如图

    38、 由于集合具有特性,常用于数据排序与去除重复元素。

    39、 以下代码可同时实现这两项功能。

    40、 定义了一个名为 it 的迭代器,用于指向存储整型数据的集合(set),可遍历其中元素。

    41、 因为 end() 返回的是末尾迭代器,不能解引用。

    42、 由于迭代器仅支持等于和不等于操作,不支持小于比较。

    43、 如图

    44、 以上介绍了set的主要用法及其常见应用场景。

    45、 尽管集合的多数内置函数时间复杂度较高,但合理使用能显著简化编程过程,提升代码效率,带来诸多便利。

    soft.zol.com.cn true https://soft.zol.com.cn/1103/11030454.html report 2158 set是C++ STL中一种非常实用的容器类型。 1、 声明一个 set 的方法 2、 value_type 表示 set 容器中存储的元素类型,可以是int、string等基本类型,也可以是自定义的结构体名称。 3、 STL容器通常按容器名+value_type+名称的方式定义,统一规范命名。 4、 需包含 set 头...
    不喜欢(0) 点个赞(0)
    随时随地资讯查报价 就上ZOL手机客户端,点击或扫描二维码下载
    立即下载

    Almeza MultiSet

    更新时间:2009年07月02日

    用户评分:0 | 0人点评

    软件类型:共享软件

    软件语言:英文

    Almeza MultiSet
    • 更新时间:2009年07月02日
    • 软件大小:5.6MB
    • 软件分类:系统优化
    • 语言种类:英文
    • 软件评级:0 人点评