map::operator[]

转载 2016年05月30日 14:52:07

std::map::operator[]

mapped_type& operator[] (const key_type& k);
Access element
If k matches the key of an element in the container, the function returns a reference to its mapped value.

If k does not match the key of any element in the container, the function inserts a new element with that key and returns a reference to its mapped value. Notice that this always increases the container size by one, even if no mapped value is assigned to the element (the element is constructed using its default constructor).

A similar member function, map::at, has the same behavior when an element with the key exists, but throws an exception when it does not.

A call to this function is equivalent to:
(*((this->insert(make_pair(k,mapped_type()))).first)).second

Parameters

k
Key value of the element whose mapped value is accessed.
Member type key_type is the type of the keys for the elements stored in the container, defined in map as an alias of its first template parameter (Key).
If an rvalue (second version), the key is moved instead of copied when a new element is inserted.

Return value

A reference to the mapped value of the element with a key value equivalent to k.

Member type mapped_type is the type of the mapped values in the container, defined in map as an alias of its second template parameter (T).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// accessing mapped values
#include <iostream>
#include <map>
#include <string>

int main ()
{
  std::map<char,std::string> mymap;

  mymap['a']="an element";
  mymap['b']="another element";
  mymap['c']=mymap['b'];

  std::cout << "mymap['a'] is " << mymap['a'] << '\n';
  std::cout << "mymap['b'] is " << mymap['b'] << '\n';
  std::cout << "mymap['c'] is " << mymap['c'] << '\n';
  std::cout << "mymap['d'] is " << mymap['d'] << '\n';

  std::cout << "mymap now contains " << mymap.size() << " elements.\n";

  return 0;
}

让std::map::operator[]变聪明

std::map::operator[]是一个设计得很磋却很好用的接口,看下面的例子:#include #include using namespace std;int main(){  map ii...
  • rickone2009
  • rickone2009
  • 2010年07月31日 03:48
  • 995

STL中map的operator[ ]使用方法

在STL中,map是一个关联式容器,它提供一对一的数据处理能力,即其中每一个元素都是一个键值对,通过一个唯一的关键字,可以唯一映射到对应的数据值。而map中重载了下标运算符[],通过下标操作,开发人员...
  • LookAtTheStars
  • LookAtTheStars
  • 2016年07月26日 08:27
  • 725

c++ map::operator[]陷阱——无则插入

T& operator[] ( const key_type& x ); Access element If x matches the key of an element in the ...
  • winger2010
  • winger2010
  • 2012年02月22日 14:38
  • 1121

Map operator initialization failed at org.apache.hadoop.hive.ql.exec.tez.TezProcessor

在hive 执行与dyanmodb相关的操作时,遇到了下面错误 Status: Failed Vertex failed, vertexName=Map 1, vertexId=vertex_1481...
  • zhouyan8603
  • zhouyan8603
  • 2017年08月10日 15:12
  • 660

std::map 自定义类做为key时 find operator< 的正确写法

如果没记错很久以前就遇到过这个问题了,当时也纠结了一会,没想到今天又遇到了。聊记于此。 类定义: class DataSortKey { public: DataSortKey(){ memset(...
  • u_1_n_2_i_3
  • u_1_n_2_i_3
  • 2017年05月18日 20:36
  • 521

Expression:invalid operator<断言

#include #include using namespace std; /* ** 测试目的:重现断言,"include\xtree Line:1746 Expression...
  • wusoule
  • wusoule
  • 2014年02月17日 12:28
  • 1357

python中的operator库

这个模块提供了一系列的函数操作。比如,operator.add(x, y)等于x+y  a = [1,2,3] b = [5,6,7] c = map(operator.mul, a, b) ...
  • ztf312
  • ztf312
  • 2016年04月03日 10:57
  • 601

Kotlin学习笔记(二)——示例篇三

该篇继续根据Kotlin语言的Demo,来学习Kotlin的使用!本文继上一篇文章来继续学习的,如果有些不懂,请参考上一篇文章 参考链接地址:http://try.kotlinlang.org/#/...
  • zouchengxufei
  • zouchengxufei
  • 2016年01月21日 13:42
  • 4316

map与vector,typedef与define

目录 1     typedef 1.1      typedef的作用---重新定义类型 1.2      typedef和define具体的详细区别 1.3      typedef例子 ...
  • u012719556
  • u012719556
  • 2013年11月15日 11:08
  • 989

vim map映射

MAP *map.txt* For Vim version 7.4. 最后更新: 2013年8月 VIM 参考手册 作者: Bram Moo...
  • ii1245712564
  • ii1245712564
  • 2015年05月29日 19:51
  • 1628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:map::operator[]
举报原因:
原因补充:

(最多只允许输入30个字)