c语言map的详细用法

c语言map的详细用法

转载自https://www.cnblogs.com/panweiwei/p/6657583.html 一、定义

(1) map Map;

(2) 或者是:typedef map Mymap;

Mymap Map;

二、插入数据

插入数据之前先说一下pair 和 make_pair 的用法 pair是一个结构体,有first和second 两个域,可以直接访问

string key="sunquan";

int value=123456;

pair b(key, value);//这里 pair 是数据类型,后面是调带参构造方法

cout<

而make_pair是返回一个pair <类型,类型> 的数据,eg:make_pair(“asa”,123456); 不过还得找个pair 类型的变量来接受返回值。 下面步入正题:

(1) Map[“abc”]=1; (2) Map.insert(pair(“c”,3)); (3)Map.insert(make_pair(“d”,4));

三、修改和查找数据

(1)修改Map[“sunquan”]=11111;

(2)查找数据 用Map.find(key); 可以通过键来查。

切记不要用int value=Map[key];这样会在Map中增加这个key,而value就是缺省值(int 为0,string为空字符串)。

通过方法(2),会返回迭代器的地址,key不存在的话迭代器的值为Map.end();

四、删除元素

(1)通过key删除;

(2)通过迭代器来删除;

下面看一下详细的代码:

#include

#include

#include

#include

#include

using namespace std;

int main()

{

map Map;

map ::iterator it;

Map.insert(pair("root",12));

Map.insert(pair("scot",11));

for(it=Map.begin();it!=Map.end();it++)

cout<first<<" "<second<

it=Map.begin();

Map.erase(it);//通过迭代器删除

string key="root";

Map.erase(key);//通过key删除

Map.erase(Map.begin(),Map.end());//一个迭代器,到另一个迭代器

//相当于 Map.clear();

for(it=Map.begin();it!=Map.end();it++)

cout<first<<" "<second<

return 0;

}

注:

map::iterator it 是声明一个 迭代器 map it 是 声明一个map容器

五、c++中map的一些方法

begin() 返回指向map头部的迭代器

clear() 删除所有元素

count() 返回指定元素出现的次数

empty() 如果map为空则返回true

end() 返回指向map末尾的迭代器

equal_range() 返回特殊条目的迭代器对

erase() 删除一个元素

find() 查找一个元素

insert()插入元素

max_size()返回可以容纳的最大元素个数

size() 返回map中元素的个数

swap() 交换两个map

get_allocator() 返回map的配置器

key_comp() 返回比较元素key的函数

lower_bound() 返回键值>=给定元素的第一个位置

max_size() 返回可以容纳的最大元素个数

rbegin() 返回一个指向map尾部的逆向迭代器

rend() 返回一个指向map头部的逆向迭代器

upper_bound() 返回键值>给定元素的第一个位置

value_comp() 返回比较元素value的函数

相关推荐