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

03-02 1200阅读

【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购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]