当前位置: 首页 > news >正文

STL---set常用函数

在C++ 的STL(标准模板库)中, set 是一种关联式容器,用于存储唯一的元素,元素默认按升序排序。 set 的常用方法如下:

1. 构造函数:
  • set s; :创建一个空的 set , T 是存储元素的类型。

  • set s(other_set); :拷贝构造函数,用另一个 set 对象 other_set 初始化 s 。

  • set s(first, last); :使用迭代器范围 [first, last) 内的元素初始化 set 。

2. 插入元素: insert() 方法用于向 set 中插入元素。如果元素已存在,则不会插入。
#include <set>
#include <iostream>
int main() {
    std::set<int> mySet;
    mySet.insert(3);
    mySet.insert(1);
    mySet.insert(2);
    for (int num : mySet) {
        std::cout << num << " ";
    }
    return 0;
}
3. 删除元素:
  • erase(key) :删除值为 key 的元素,返回删除的元素个数( set 中元素唯一,所以要么是 0 要么是 1)。

  • erase(it) :删除迭代器 it 指向的元素。

  • erase(first, last) :删除迭代器范围 [first, last) 内的元素。

4. 查找元素: find(key) 方法用于查找值为 key 的元素,若找到则返回指向该元素的迭代器,否则返回 end() 迭代器。
#include <set>
#include <iostream>
int main() {
    std::set<int> mySet = {1, 2, 3};
    auto it = mySet.find(2);
    if (it != mySet.end()) {
        std::cout << "Element found" << std::endl;
    } else {
        std::cout << "Element not found" << std::endl;
    }
    return 0;
}
5. 获取元素个数: size() 方法返回 set 中元素的个数。
6. 判断是否为空: empty() 方法判断 set 是否为空,若为空返回 true ,否则返回 false 。
7. 迭代器相关:
  • begin() :返回指向 set 中第一个元素的迭代器。

  • end() :返回指向 set 中最后一个元素之后位置的迭代器(常作为迭代的结束条件)。

  • rbegin() :返回指向 set 中最后一个元素的反向迭代器。

  • rend() :返回指向 set 中第一个元素之前位置的反向迭代器。

这些是 set 容器最常用的一些方法,通过使用这些方法,可以方便地对 set 进行各种操作。

相关文章:

  • c语言笔记 结构体基础
  • QT QML实现音频波形图进度条,可点击定位或拖动进度
  • 单目3d detection算法记录
  • 24集《不负美食不负卿》联合出品制作签约仪式成功举行
  • 【运维自动化-标准运维】如何实现一个最简单的流程编排
  • 【Redis】Redis的数据删除(过期)策略,数据淘汰策略。
  • [Nowruz 1404] 2025 Crypto/PWN部分
  • 三月九次前端面试复盘:当场景题成为通关密钥
  • 使用 EchoAPI 实现 API 断言的全面指南
  • vulhub/Billu_b0x靶机----练习攻略
  • c盘清理宝藏小工具
  • 使用Trainer传入自定义的compute_metrics函数时,oom报错
  • Diffusion Transformers (DiTs) - 用Transformer革新Diffusion模型
  • 构建高可靠NFS存储:自动化挂载保障机制的设计与优势
  • 【Vuex:在带命名空间的模块内访问全局内容】
  • Docker运行postgreSQL,由于异常启动或者退出后,提示could not locate a valid checkpoint record
  • JS—事件委托:3分钟掌握事件委托
  • vlan初学的总结
  • NLP高频面试题(四)——BN和LN的区别与联系,为什么attention要用LN
  • Visual Studio2022 中的键盘注释快捷方式
  • 上报集团社长李芸:发挥媒体优势,让中非民心在数字时代更深层互联互通
  • 教育部答澎湃:2025世界数字教育大会将发布系列重磅成果
  • 逆境之上,万物生长
  • 保证断电、碰撞等事故中车门系统能够开启!汽车车门把手将迎来强制性国家标准
  • 习近平同俄罗斯总统普京会谈
  • 李彦宏:技术迭代速度之快从业30年来未见过,要提升执行力战胜对手