STL-map

来源:互联网 发布:丰臣秀吉知乎 编辑:程序博客网 时间:2024/05/22 10:29

原文链接:点击打开链接

 1. map最基本的构造函数;
map<string ,int>mapstring; map<int,string >mapint;
map<sring,char>mapstring; map< char ,string>mapchar;
map<char,int>mapchar; map<int ,char>mapint


2.map的基本操作函数
C++Maps 是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数


3.map是C++STL中的一个重要的类库,下面介绍一些使用功能

使用时需加头文件<map>

1、begin和end的使用方法,此时注意end并不是最后一个,而是最后一个的下一个

2、下面介绍count,count(n)返回n在容器中出现的次数,由于键值在容器中具有唯一性,因此count(n)的值非0即1.

3、介绍一下erase,注意删除方式

4、find,很明显就是查找元素.

5、最重要的一个操作了,插入元素,不会插入功能,基本就用不了map了!

6、swap,注意写法,功能也很强大!



map关联容器:

介绍:

map是一个关联容器,它可以提供一对一(其中第一个可以称为关键字,每个关键字只能在map中只出现一次,第

二个可能称为该关键字的值)的数据处理能力,意思就是可以实现类似k[cds111] = 2的功能,除此之外,map还会

对数据自动排序

调用头文件:

#include<map>

using namespace std;

详细用法(部分):

例如:

map<string, int> p;      ------      定义一个字符串与整型关联容器,其中每个字符串都对应着一个整数,即每个字符串

都为独特的key

对应上面的容器有:

p["student"] = 2;      ------      插入(覆盖)key,且字符串(key)"student"值为2(默认为0)

p[key]      -------      表示key对应的值

p.count("student")      ------      查找p里是否有key:"student",有的话返回1,否则返回0


p.erase("student")      ------      删除key:"student",成功返回1,否则返回0

p.empty()      ------      判断容器是否为空,是的话返回1,不是返回0

p.clear()      ------      清空容器

p.size()      ------     返回容器中key个数

#include<stdio.h>  #include<algorithm>  #include<string>  #include<map>  using namespace std;  map<string, int> p;  int main(void)  {        int T, len;      char str[40];      string str2;      scanf("%d", &T);      while(T--)      {          scanf("%s", str);          len = strlen(str);          sort(str, str+len);     /*对字符串进行排序*/          str2.assign(str);   /*将C类的字符串转为C++的String以便作为key进入map*/          p[str2]++;      /*字符串(key)str对应的值+1*/          printf("%d\n", p[str2]-1);      }      return 0;  }  

0 0
原创粉丝点击