| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 【c++】——map和set -> 正文阅读 |
|
[数据结构与算法]【c++】——map和set |
概念
????????? ?set测试: ? 输出结果?
判断单词是否在set中。? 测试: ????????? 总结: 1.set中的节点中只有一个值key,且每个key值是独一无二的 2.set插入值的同时,可以通过bool值判断该值是否在set中。 3.pair是一个类模板 template <class T1, class T2> struct pair; multisetmultiset中的特性以及用法是与set是完全相同的,唯一的差别是它允许键值重复,它的底层也是红黑树。 测试: ? ?multiset允许key冗余,并且multiset中的find是按中序遍历的查找的第一个1. map
概念:
pair<iterator,bool> insert (const value_type& val); map的函数重载[]的实现如下, mapped_type& operator[] (const key_type& k) { ?? ?typedef pair< key_type, mapped_type> e; ?? ?pair<e, bool> it = this->insert(make_pair(k, mapped_type()); ?? ?return (*it).first)).second; } ?测试: 统计单词次数: 统计次数一: 统计次数二:? ? ?统计次数三: ? 对所有单词的次数进行排序 对m3中的单词次数从上到下进行排序。? 排序一: 仿函数MapItCompare ?将m3中的迭代器存入到vector中,然后利用sort进行排序,sort会根据MapItCompare仿函数进行排序,其中MapItCompare是自定义的仿函数。 ? ?排序二 ?map利用迭代器访问会自动根据key值进行排序,greater是库中的仿函数,会将map排成一个降序。 ?总结:
multimapmultimap的用法和功能是类似的,只是multimap允许key值冗余。 题目: ?思路: 1.先用map统计出所有单词的次数,然后multimap根据次数进行排序,迭代器遍历会自动的进行排序,greater<int>排的是降序,然后将前n个字符插入到vector中。 2.时间复杂度为O(N*logN) ? 空间复杂度为O(N) ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 15:30:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |