cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器
map(映射,key不能重复,一对一对的,value_type(1, "one")),multimap(多映射key可以重复)
红黑树(数据结构)map,multimap就是红黑树-二叉树
基本操作
insert:4 种方法
count和find
erase:3种方法
注意:不能通过find进行修改。

a.insert(map<int, string>::value_type(1, "one")); 数值1就是key键,"one"就是值。就是一对

map 与 multimap是存储key-value(键-值 对)类型的容器。

不同之处在于:map只允许key与 value一一对应;multimap一个key可对应多个value;

STL在线手册英文链接 :http://www.cplusplus.com/reference/stl/

STL在线手册中文链接 :http://c.biancheng.net/stl/

txwtech@163.com

 /*cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器
map(映射,key不能重复,一对一对的,value_type(1, "one")),multimap(多映射key可以重复)
红黑树(数据结构)map,multimap就是红黑树-二叉树
基本操作
insert:4 种方法
count和find
erase:3种方法
注意:不能通过find进行修改。 a.insert(map<int, string>::value_type(1, "one")); 数值1就是key键,"one"就是值。就是一对 map 与 multimap是存储key-value(键-值 对)类型的容器。 不同之处在于:map只允许key与 value一一对应;multimap一个key可对应多个value; STL在线手册英文链接 :http://www.cplusplus.com/reference/stl/ STL在线手册中文链接 :http://c.biancheng.net/stl/
*/
#include <iostream>
#include <map>
#include <string> using namespace std; int main()
{
map<int, string> a;
map<string, int> score;
multimap<int, string> ma; cout << "插入数据" << endl;
a.insert(map<int, string>::value_type(, "one"));//数值1就是键,"one"就是值。就是一对
a.insert(map<int, string>::value_type(, "two"));
a.insert(map<int, string>::value_type(, "Three"));
a.insert(make_pair(-, "Minus One"));//插入方法2
a.insert(pair<int, string>(, "One Thousand"));//插入方法3
a[] = "One Million";//插入方法4,不能用于multimap score.insert(make_pair("scott", ));
score.insert(make_pair("sunny", ));
score.insert(make_pair("Gates", ));
score["bill"] = ;
cout << "bill score is:" << score["bill"] << endl;
cout << "Gates score is: " << score["Gates"] << endl; cout << "map查找返回的是一个常迭代器" << endl;
cout << a[] << endl;//下标3对应three;
cout << a[-] << endl;//-1,对应--Minus One cout << "map里面里面一共有:" << a.size() << " 个键值对数据";
cout << "这些数据是:" << endl;
map<int, string>::const_iterator i;
for (i = a.begin(); i != a.end(); ++i)
{
cout << "Key:" << i->first;
cout << " Value:" << i->second.c_str();
cout << endl;
}
ma.insert(multimap<int, string>::value_type(, "Three"));
ma.insert(multimap<int, string>::value_type(, "Forty Five"));
ma.insert(make_pair(-, "Minus one1"));
ma.insert(pair<int, string>(, "One Thousand"));
ma.insert(pair<int, string>(, "one Thousand")); cout << endl << "multimap" << ma.size() << " 个数据。" << endl;
cout << "multimap数据显示:" << endl;
multimap<int, string>::const_iterator im;
for (im = ma.begin(); im != ma.end(); ++im)
{
cout << "Key: " << im->first;
//cout << " Value:" << im->second;//如果出错就用c_str()
cout << " value:" << im->second.c_str();
cout << endl;
}
cout << "multimap有" << ma.count() << " 个1000" << endl; cout << "multimap查找返回的是一个常迭代器" << endl;
multimap<int, string>::const_iterator fi; fi=ma.find();
if (fi != ma.end())
{
cout << "找到了:" << fi->first << "=" << fi->second.c_str() << endl; }
else
{
cout << "没有找到" << endl;
}
fi = ma.find(); //多个1000都找出来显示
if (fi != ma.end())
{
cout<<"找到了1000!!!"<<endl;
size_t n = ma.count();
for (size_t i = ; i < n; ++i)
{
cout << "\t Key: " << fi->first;
cout << ", Value[" << i << "]=";
cout << fi->second << endl;
++fi;
}
} cout << "erase删除方法的使用" << endl;
if (ma.erase(-) > )
cout << "通过key删除成功,结果大于0:" << endl; cout << "通过查找,再删除" << endl; multimap<int, string>::iterator iElementFound = ma.find();
if (iElementFound != ma.end())
{
ma.erase(iElementFound);
cout << "删除45成功咯" << endl;
} ma.erase(ma.lower_bound(), ma.upper_bound());
cout << "从第一个1000,到最后一个1000的数据都删除了" << endl; return ;
}

cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器的更多相关文章

  1. cb23a_c++_标准模板库STL_set_multiset_关联容器

    cb23a_c++_标准模板库STL_set_multiset_关联容器 set(集)数据不能重复.multiset(多集)可以重复.操作数据速度快,数据自动排序.红黑树(数据结构)红黑树-二叉树基本 ...

  2. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  3. C++_标准模板库STL概念介绍1-建立感性认知

    标准模板库的英文缩写是STL,即Standard Template Library. STL里面有什么呢? 它提供了一组表示容器.迭代器.函数对象和算法的模板. 容器是一个与数组类似的单元,可以存储若 ...

  4. C++_标准模板库STL概念介绍2-泛型编程

    有了之前使用STL的经验后,接下来讨论泛型编程及其底层的理念: 首先我们知道STL只是泛型编程的一种: 而面向对象的编程方式关注的是编程的数据方面: 而泛型编程关注的是算法: 但是,他们之间的一个重要 ...

  5. C++_标准模板库STL概念介绍5-其他库与总结

    C++还提供了其他一些类库,这些类库更加专用. 例如,头文件complex为复数提供了类模板complex,包含用于float.long和long double的具体化. 这个类提供了标准的复数运算以 ...

  6. C++_标准模板库STL概念介绍4-算法

    STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_differen ...

  7. C++_标准模板库STL概念介绍3-函数对象

    函数对象也叫做函数符(functor). 函数符是可以以函数方式和( )结合使用的任意对象. 包括函数名,指向函数的指针,重载了()运算符的类对象. 可以这样定义一个类: class Linear { ...

  8. 8、泛型程序设计与c++标准模板库2.3双端队列容器

    双端队列容器是一种放松了访问权限的队列.除了从队列的首部和尾部访问元素外,标准的双端队列也支持通过使用下标操作符"[]"进行直接访问. 它提供了直接访问和顺序访问方法.其头文件为& ...

  9. 标准模板库(STL)学习探究之Multimap容器

    C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素.(具体用法请参考map容器)     函数列表:     begin() 返回指向第一个元素的迭代器      cle ...

随机推荐

  1. json和数组

    接触数组: 1.数组的定义方法    var arr = [1,2,3,4,5];    var arr = new array();此处括号内可以填写数组的元素,或者直接填写元素的个数.2.数组中各 ...

  2. 获取cookie里面的sessionid

    做接口的时候我们需要获取一个令牌,类似于token以及sessionid这样的签名,也可以说是一个令牌. import urllib.request, urllib.parse, urllib.err ...

  3. Java中的集合(十三) 实现Map接口的Hashtable

    Java中的集合(十三) 实现Map接口的Hashtable 一.Hashtable简介 和HashMap一样,Hashtable采用“拉链法”实现一个哈希表,它存储的内容是键值对(key-value ...

  4. (一)DAO设计及BaseDAO和BookDAO的实现

    1.总体架构 MVC 设计模式:Model:POJO(Plain Old Java Object) Controller:ServletView:JSP + EL + JSTL 2.技术选型 数据库: ...

  5. angularjs 路由切换回到顶部

    angularjs路由切换  页面不会回到顶部 问题: 在angularjs中  ui-sref或者$state.go(),通过路由切换页面,发现新打开的路由页面仍然停留在上一次的路由页面访问的位置. ...

  6. 如何减小SRAM读写操作时的串扰

    静态存储器SRAM是一款不需要刷新电路即能保存它内部存储数据的存储器.在SRAM 存储阵列的设计中,经常会出现串扰问题发生.那么要如何减小如何减小SRAM读写操作时的串扰,以及提高SRAM的可靠性呢, ...

  7. 一篇文章看清楚 Linux 的职业发展方向

    手机.汽车.甚至宇宙飞船,在今天的科技世界中,你几乎到处都能看到 Linux 的身影.前两天 SpaceX 成功将宇航员送入太空的猎鹰9号火箭与龙飞船用的也是 Linux的操作系统.身处与 Linux ...

  8. OAuth + Security -1 - 认证服务器配置

    配置 基础包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  9. 曹工说Spring Boot源码(29)-- Spring 解决循环依赖为什么使用三级缓存,而不是二级缓存

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  10. 使用turtle库画国际象棋棋盘

    import turtle n = 60 # 每行间隔,小格子边长 x = -300 # x初始值 y = -300 # x初始值 def main(): turtle.speed(11) turtl ...