小工具知识网

当前位置: 首页 > 行业知识 > C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解

行业知识

C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解

2026-11-10 03:48:52 来源:互联网转载

C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解

注:整理一些突然学到的C++知识,随时mark一下

例如:忘记的关键字用法,新关键字,新数据结构


C++ 的map用法整理

  • C++之STL整理(4)之set 用法(创建、赋值、增删查改)详解
  • 一、set的初始化
    • 1、set初始化
      • (1)构造函数初始化
      • (2)赋值操作
      • (3)swap函数;
      • 3、大小操作
      • 二、set的增删查改
        • 1、插入操作insert
        • 2、删操作erase、clear
        • 3、查找操作 find
        • 4、统计count
        • 三、指定排序规则
          • 1、指定set容器的排序规则
          • 2、 对于自定义数据类型,set 必须指定排序规则
          • 总结

            提示:本文为 C++ 中 set构造、赋值、接口 的写法和举例


            一、set的初始化

              STL 中的set是一个关联容器,它存储的元素都是键值一体的(key-value pair),并且也会根据键(key)自动排序。set存储的元素(键)是唯一的,不允许键重复,并且默认按照从小到大的顺序进行排序(和map一样也可以通过提供一个自定义的比较函数或对象来改变排序方式,自定义类型必须增加)。std::set 的元素通过其键或迭代器进行访问,并且在这个容器中,键也是值(key is value),也就是说set相当于键值一体的map。

            set的基本操作

            插入元素:使用 insert 成员函数向 set 中插入元素。如果元素已经存在,则不会插入重复的元素。.insert()的返回值是个pair结构的对组 pair bool代表插入是否成功。

            查找元素:使用 find 成员函数来查找元素。如果找到元素,则返回指向该元素的迭代器;否则返回 end() 迭代器。

            删除元素:使用 erase 成员函数来删除元素。你可以通过迭代器或键来删除元素。

            遍历元素:使用迭代器iterator来遍历 set 中的元素。由于 set 是有序的,所以遍历将按照元素的排序顺序进行。

            示例

            下面是一个简单的 std::set 使用示例:

            #include   #include     int main() {      std::set mySet;        // 插入元素      mySet.insert(3);      mySet.insert(1);      mySet.insert(4);      mySet.insert(1); // 不会插入重复的元素        // 遍历并打印元素      for (int num : mySet) {          std::cout           std::cout           std::cout 1, 2, 3};  std::set1, 2, 3};  std::set1, 2, 3};  std::set4, 5, 6};  mySet.swap(anotherSet);  // 交换两个set的内容1, 2, 3, 4, 5};  std::cout       std::cout       std::cout 1, 2, 3, 4, 5};  auto it = mySet.find(3); // 查找元素3的迭代器  if (it != mySet.end()) {      it = mySet.erase(it); // 删除元素3,it现在指向4  }mySet.clear(); // 清空set,现在mySet是空的1, 2, 3, 4, 5};  auto it = mySet.find(3); // 查找元素3的迭代器  if (it != mySet.end()) {      mySet.erase(it, std::next(it)); // 删除元素3(包括3)之后的所有元素  }1, 2, 2, 3, 4, 4, 4};  myMultiSet.erase(2); // 删除一个值为2的元素  myMultiSet.erase(4); // 删除一个值为4的元素,现在myMultiSet中还有两个41, 2, 3, 4, 5};  auto it = mySet.find(3); // 查找元素3  if (it != mySet.end()) {      std::cout       std::cout 1, 2, 2, 3, 4, 4, 4};  size_t countOfTwo = myMultiSet.count(2); // 查找元素2出现的次数  std::cout       bool operator()(const std::string& a, const std::string& b) const {          // 这里我们按照字符串的长度进行排序,而不是默认的字典序          return a.size() 

上一篇:零命令服务器怎么开启?

下一篇:网络安全之了解安全托管服务(MSS)