【C++入门到精通】C++入门 —— set & multiset (STL)

2024-03-08 1652阅读

温馨提示:这篇文章已超过425天没有更新,请注意相关的内容是否还可用!

【C++入门到精通】C++入门 —— set & multiset (STL)

阅读导航

  • 前言
  • 一、set简介
  • 二、std::set
    • 1. std::set简介
    • 2. std::set的使用
      • - 基本使用
      • - std::set的模板参数列表
      • - std::set的构造函数
      • - std::set的迭代器
      • - std::set容量与元素访问函数
      • 3. set的所有函数(表)
      • 三、std::multiset
        • 1. std::multiset简介
        • 四、std::set与std::multiset的比较
          • ⭕**相同点**
          • ⭕**不同点**
          • 如何选择set 和 multiset
          • 温馨提示

            前言

            前面我们讲了C语言的基础知识,也了解了一些初阶数据结构,并且讲了有关C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用 和 内联函数也认识了什么是类和对象以及怎么去new一个 ‘对象’ ,也了解了C++中的模版,以及学习了几个STL的结构也相信大家都掌握的不错,接下来博主将会带领大家继续学习有关C++比较重要的知识点—— set & multiset (STL) 。下面话不多说坐稳扶好咱们要开车了😍

            一、set简介

            在C++中,set是标准库中的一个容器,它实现了有序、不重复的元素集合。set容器基于红黑树数据结构实现,提供了一系列的成员函数和操作符,用于对元素进行插入、删除、查找等操作。其中set又分为set和multiset,接下来博主将会带着大家认识一下这两个函数。

            🔴 官方文档 > 链接

            【C++入门到精通】C++入门 —— set & multiset (STL)

            二、std::set

            1. std::set简介

            ⭕ 官方文档 > 链接

            【C++入门到精通】C++入门 —— set & multiset (STL)

            std::set是C++标准库中提供的一个容器,它实现了一种有序的、不重复的元素集合。每个元素在std::set容器中都唯一,并且以特定的顺序进行排序。std::set是基于红黑树数据结构实现的,因此它具有高效的插入、删除和查找操作。

            🍔以下是std::set容器的一些特点:

            1. 有序存储:std::set中的元素是按照特定的排序准则进行有序存储的,默认以升序排列。可以通过提供自定义的比较函数或函数对象来改变排序方式。
            2. 唯一性:std::set容器中的元素是唯一的,不允许存在重复的元素。当尝试插入已经存在的元素时,插入操作不会生效。
            3. 动态大小:std::set容器可以根据需要动态地增加或减少其大小。可以通过插入和删除操作来修改容器中的元素数量。
            4. 快速插入、删除和查找:基于红黑树数据结构,std::set容器提供了高效的插入、删除和查找操作。这些操作的平均时间复杂度为O(logN),其中N是容器中的元素数。
            5. 迭代器支持:std::set容器提供了迭代器,可以用于遍历容器中的元素,并对其进行读取或修改操作。
            6. 不支持直接访问元素:由于std::set是基于有序集合实现的,它并不支持通过下标操作符([])直接访问元素。如果需要按索引访问元素,可以使用其他容器类型,如std::vector。
            7. 内存开销相对较大:由于红黑树的特性,std::set容器在内存使用方面可能比其他容器类型更占用空间。

            🚨🚨注意:

            • std::set中的元素是有序存储的,因此插入、删除操作的时间复杂度为O(logN),查找操作的时间复杂度也为O(logN),其中N为std::set中元素的个数。
            • 使用std::set需要包含 头文件,并使用 std::set 关键字声明一个std::set对象。

              2. std::set的使用

              - 基本使用

              #include 
              #include 
              int main() {
                  std::set mySet;
                  // 插入元素
                  mySet.insert(10);
                  mySet.insert(5);
                  mySet.insert(8);
                  // 遍历元素
                  for (const auto& elem : mySet) {
                      std::cout 
                      std::cout 
                      std::cout 
                  std::multiset
                      std::cout 
                      std::cout 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]