我是靠谱客的博主 单纯大叔,最近开发中收集的这篇文章主要介绍STL关联式容器之映射表——map,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、map的特性

和set一样,map的元素都会自动根据键值进行自动排列,map的所有元素都是pair类型,同时拥有实值和键值,pair的第一个元素为键值,第二个元素为实值,且map不允许两个键值相同的元素。

在学习map之前,我们先学习一下pair。

<stl_pair.h>

template<class T1, class T2>

struct pair{

  typedef T1 first_type;

  typedef T2 second_type;

  T1 first;

  T2 second;

   pair():firs(T1()),second(T2()){}//构造函数

   pair(const T1& a, const T2& b): first(a), second(b){}//构造函数
};

2、我们可以通过map的迭代器改变map的元素内容吗?

如果要改变键值,是不行的,但是如果要改变实值,是可以的。因此,map的迭代器既不是const iterator,也不是mutable iterator。

3、对容易犯错函数的说明

(1)首先是插入函数insert()

pair<iterator,bool> insert(const value_type& x){

    return t.insert_unique(x);

}

插入函数的返回类型为pair类型,其中第二个代表插入是否成功,成功的话,前者将指向被插入的那个元素。

(2)下标操作符

下标操作符有两种用法,可能作为左值运用(内容可以被修改),也可能作为右值(内容不可修改)。如

map<string, int> simap;

simap[string("1")]=1;//左值,可以修改

int number=simap[string("1")];

4、multiset和multimap

multiset和multimap分别从set和map衍生而来,不同的是他们可以拥有相同的元素。

他们的底层插入函数是insert_equal而非insert_unique()。

最后

以上就是单纯大叔为你收集整理的STL关联式容器之映射表——map的全部内容,希望文章能够帮你解决STL关联式容器之映射表——map所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部