当前位置:   article > 正文

使用map的find头文件_C++中的STL中map用法详解

map find string

以下内容部分参考网上文章,敬请谅解。

map是STL的一个关联容器,它提供一对一的数据处理能力(有序键值对),第一个元素称为关键字,第二个称为关键字的值,其中关键字是唯一的。map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能。

1、map简介

map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。

对于迭代器来说,可以修改实值,而不能修改key。

2、map的功能

自动建立Key-value的对应。key 和 value可以是任意你需要的类型。

根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。

3、使用map

使用map得包含map类所在的头文件

#include //注意,STL头文件没有扩展名.h

4、map的格式

template<

class Key,

class T,

class Compare = std::less,

class Allocator = std::allocator<:pair key t> >

> class map;

5、map的构造函数

map共提供了6个构造函数,这块涉及到内存分配器的一些东西,这里略过。我们通常用如下方法构造一个map:

map maps;

6、map的一些函数

函数名功能maps.insert()或maps["key"]=value插入maps.find()查找一个元素maps.clear()清空maps.erase()删除一个元素maps.size()长度maps.begin()返回指向map头部的迭代器maps.end()返回指向map末尾的迭代器maps.rbegin()返回一个指向map尾部的逆向迭代器maps.rend()返回一个指向map头部的逆向迭代器maps.empty()如果map为空则返回trueswap()交换两个mapmap的插入(map内部是自动排序号的,单词则按字母序排序)

maps.insert(pair(1, "one"));

maps[1] = "one";map的遍历

//迭代,根据key排序的,我的key是string,故是字典序排序,从a-z

map< string,int>::iterator iter;

for(iter = maps.begin(); iter != maps.end(); iter++)

cout<< iter->first << ' ' << iter->second << endl;//输出的是key value值

//数组形式的遍历

int nSize = maps.size();

for(int index = 0; index < nSize; index++)

cout << maps[index] << endl;map的删除

iterator erase(iterator it);//通过一个条目对象删除

iterator erase(iterator first,iterator last)//删除一个范围

size_type erase(const Key&key);//通过关键字删除map的查找

map::iterator iter = maps.find(1);

if(iter != mapStudent.end())

cout<< "Find, the value is " << iter->second << endl;

下面给大家一道STL的map练习的小例题

题目描述

在一个网络系统中有 N 个用户、 M 次上网记录。每个用户可以自己注册一个用户名,每个用户名只包含小写字母且长度小于 1000 的字符串,每次上网日志里都会有记录,现在请统计每个用户每次浏览了多少个网页。

输入

第 1 行包含两个正整数 NN (1≤N≤1000) 和 MM (1≤M≤5000)。

第 2 ~ M+1 行,每行包含 2 个字符串,分别表示用户名和浏览的网页名。

输出

共 NN 行,每行的第一个字符串时用户名,接下来的若干字符串是这个用户依次浏览的网页名(之间用一个空格隔开)。按照用户名出现的次序排序输出。

样例输入

5 7

goodstudyer bookshopa

likespacea spaceweb

goodstudyer bookshopb

likespaceb spaceweb

likespacec spaceweb

likespacea juiceshop

gameplayer gameweb

样例输出

goodstudyer bookshopa bookshopb

likespacea spaceweb juiceshop

likespaceb spaceweb

likespacec spaceweb

gameplayer gameweb

数据规模与约定

时间限制:1 s

内存限制:256 M

提示:可以声明这样一个map哦。map> maps。如果有小伙伴想看自己的题是否正确,可以私发给我你的代码哦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/991961
推荐阅读
相关标签
  

闽ICP备14008679号