map与set

本文详细介绍了C++标准库中的set与map容器,包括它们的底层实现原理、使用方法和应用场景。探讨了set和map如何帮助解决实际问题,如单词拼写检查、数据过滤等,并分析了pair在这些容器中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setmap我用的是VS2013

一.首先 介绍一下容器的概念

容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型。c++中的容器主要vector,list(顺序容器) 这些都是已经封装好了的,包含头文件"vector","list",通过迭代器iterator访问容器中的据,map,set(关联容器),关联容器map键值对形式出现key,value,key唯一,mutimap多映射可以不唯一;set是一个单一值的集合eg:1,2,3,4(set多用于查找key,map多用于通过key找value)。如下图:


二.简述pair
首先pair是一个模板类,pair模板类的简单实现如下:(在set,map中运用甚广)

可以说pair模板的作用是将两个数据组合为一个数据;这样在set与map中就得到了灵活的运用。

三.set (K)
set包含在#include<set>头文件中
1. set容器的特点及一些用法:
(1)set底层原理为红黑树
(2)set打印出的数据为(以中序)有序数据(默认为升序)(注:字符型数据以ASCLL码为准)

(3)set中当插入重复数据时当打印出来只出现一次(防冗余,过滤)

(4)const_iterator 的迭代器可const set<int> 的对象成员函数;
(5)set还可以用来排序(把一组数据插入到set容器中,利用set自身的特点打印出来就是有序的(默认升序,也可以为降序))
(6)pair在set中的应用:



(7)erase的运用:


2.set的应用
(1)检查一个单词拼写对错
(2)过滤(爬虫)
3.set的效率
由于set底层是由红黑树实现的所以效率为lg(n);
三.map(K,V)
map包含在#include<map>头文件中
1. map容器的特点及一些用法:
(1)map与set的构造有所不同map的模板有两个参数<K,V>(key,value);
 
2.map的应用:
(1)可以使用map统计一个数组里面的单词出现的个数




(2) (在一的基础上)可以找出出现次数最多的前n个
该功能可以用sort、堆、优先级队列(底层也为堆实现的)实现
3.map的效率
由于map底层也是由红黑树实现的所以效率为lg(n);








































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值