首页 > 学院 > 开发设计 > 正文

map与set

2019-11-08 19:52:27
字体:
来源:转载
供稿:网友

set与map(我用的是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);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表