面试之快速学习STL-set

这篇具有很好参考价值的文章主要介绍了面试之快速学习STL-set。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

set

  1. 和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等
  2. 使用 set 容器存储的各个元素的值必须各不相同
  3. 从语法上讲 set 容器并没有强制对存储元素的类型做 const 修饰, 即 set 容器中存储的元素的值是可以修改的。但是,C++ 标准为了防止用户修改容器中元素的值,对所有可能会实现此操作的行为做了限制,使得在正常情况下,用户是无法做到修改 set 容器中元素的值的
  4. 对于初学者来说,切勿尝试直接修改 set 容器中已存储元素的值,这很有可能破坏 set 容器中元素的有序性,最正确的修改 set 容器中元素值的做法是:先删除该元素,然后再添加一个修改后的元素

模版

set 容器的类模板定义如下:文章来源地址https://www.toymoban.com/news/detail-655058.html

template < class T,                        // 键 key 和值 value 的类型
           class Compare = less<T>,        // 指定 set 容器内部的排序规则
           class Alloc = allocator<T>      // 指定分配器对象的类型
           > class set;

初始化

std::set<std::string> myset{"http://c.biancheng.net/java/",
                            "http://c.biancheng.net/stl/",
                            "http://c.biancheng.net/python/"};

std::set<std::string> copyset(myset);

迭代器

  1. 成员方法返回的迭代器,无论是 const 类型还是非 const 类型,都不能用于修改 set 容器中的值

😂其他真的没啥好讲的和map multimap一样

到了这里,关于面试之快速学习STL-set的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STL(第七课):set

            STL set是C++ STL库提供的一种关联容器,它实现了一个有序、不重复的集合。可以将set看作一个集合,该集合中的元素按照一定的有序排列,并且每个元素只出现一次。STL set的底层实现采用了红黑树的数据结构,具有自动排序和快速查找等特点。        

    2024年02月05日
    浏览(53)
  • 【C++STL】set

    前面的C++STL的博客,我们介绍了string,vector,list,deque,priority_queue还有stack和queue。 这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。 而从本节开始,我们就要开始学习关联式容器。 关联式容器也是用来存储数据的,但与序列式容器

    2023年04月26日
    浏览(28)
  • C++ STL set容器

    和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。 举个例子,如下有 2 组键值对数据: {\\\'a\\\', 1, \\\'b\\\', 2, \\\'c\\\', 3} {\\\'a\\\', \\\'a\\\', \\\'b\\\', \\\'b\\\', \\\'c\\\', \\\'c\\\'} 显然,第一组数据中各键值对的键和值不相等,而第二组中各键值对的键和值对应相等。对于 set 容器来

    2024年02月02日
    浏览(42)
  • stl set 的 insert()

            set 跟 map 容器很像,但它俩又有很大的不同,它们的底层实现都是树,元素都是有序的,但map是可以修改元素的,而 set 就不行了,set 里的元素只有删除的情况,没有修改的情况;所以发现没有? set 是没有 operator[] 操作的。 因为 set 里的元素是有序的,所以跟

    2024年04月15日
    浏览(27)
  • C++ STL set容器使用教程

    set 为关联式容器,翻译为 集合 ,其中的元素类型为 pair ,需要注意 set 容器存储的各个键值对,要求键 key 和值 value 必须相等 基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。 set 容器 会自行根据键的大

    2024年02月10日
    浏览(38)
  • STL --- 二、容器 (4)set 和multiset

    目录 1、std::set 和 std::multiset 特点 2、std::set 和 std::multiset 常用的api 3、std::set 和 std::multiset 的示例 4、std::map和set区别 1、std::set 和 std::multiset 特点 (1)std::set 中每个元素的键值都唯一,而 std::multiset 中可以有多个相同的键值。 (2)std::set 中的元素按照键值大小顺序是按照元

    2024年02月06日
    浏览(43)
  • STL容器——unordered_set的用法

    unordered_set 容器,可直译为 无序 set 容器 。即 unordered_set 容器和 set 容器很像,唯一的区别就在于 set 容器会自行对存储的数据进行排序,而 unordered_set 容器不会。 下面是 set 、 multiset 和 unordered_set 之间的差别。 注意这三种集合的底层实现,他决定了算法的时间复杂度。特别

    2024年02月09日
    浏览(48)
  • 19 标准模板库STL之set和multiset

    基础知识         1、set是一个自动有序且不含重复元素的容器,内部使用红黑树的平衡二叉索引树的数据结构来实现。向set中插入新元素时,会自动调节二叉树的排列,将元素放到合适的位置。multiset与set不同的地方在于,set内相同数值的元素只能出现一次,multiset内相同

    2023年04月22日
    浏览(48)
  • 【C++】STL之map、set类源码剖析

    目录 概述 算法 源码 Iterator.h RBTree.h Map.h Set.h test.cpp map和set都是STL中的关联式容器,而vector、list、deque是序列式容器。 map是映像,set是集合,map元素的数据类型是std::pairK,V格式(key/value形成映像),set元素的数据类型只有key值。 map和set的实现是对红黑树的封装,map根据key值进行

    2024年02月02日
    浏览(40)
  • 【C++ STL之map,set,pair详解】

    在C++的STL(Standard Template Library)中,map是一个非常有用的关联容器。它提供了一种键-值对的数据结构,其中的元素按照键的顺序进行排序,并且每个键是唯一的。本文将详细介绍C++ STL中map的使用方法和一些常见操作。 (1)头文件 (2)初始化方法 可以使用以下方式声明和

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包