//tuple多元数组,必须是静态数组,类似结构体

//配合array,vector使用

//std::tuple<数组元素类型>数组变量名(数组元素变量名);

 #include <iostream>
#include <map>
using namespace std; //tuple多元数组,必须是静态数组,类似结构体
//配合array,vector使用 void main()
{
int int1();
double double1(99.8);
char ch1('A');
char *str = "hello"; //std::tuple<数组元素类型>数组变量名(数组元素变量名);
std::tuple<int, double, char, const char *>mytuple(int1, double1, ch1, str);//创建一个多元数组,可以存放不同类型的元素 auto data0 = std::get<>(mytuple);//下标只能是常量
auto data1 = std::get<>(mytuple);
auto data2 = std::get<>(mytuple);
auto data3 = std::get<>(mytuple); std::cout << typeid(data0).name() << " " << data0 << std::endl;//在C++中,typeid用于返回指针或引用所指对象的实际类型。
std::cout << typeid(data1).name() << " " << data1 << std::endl;
std::cout << typeid(data2).name() << " " << data2 << std::endl;
std::cout << typeid(data3).name() << " " << data3 << std::endl; decltype(data0) dataA;//根据一个变量,创建一个备份 system("pause");
}

map, multimap的区别:map每一个结点是映射,multimap每一个结点是映射链表的开头

1 map

2 multimap

1 map

映射(map) 由{键,值}对组成的集合,以某种作用于键对上的谓词排列 <map>

如果已经有重复的元素,将会插入失败

 #include <iostream>
#include <map> int main()
{
std::map<const char *, int>mymap; mymap.insert(std::pair<const char *, int>("司令1", ));
mymap.insert(std::pair<const char *, int>("司令2", ));
mymap.insert(std::pair<const char *, int>("司令3", ));
mymap.insert(std::pair<const char *, int>("司令4", )); mymap.insert(std::pair<const char *, int>("司令1", ));//如果已经有重复的元素,将会插入失败 auto ib = mymap.begin();
auto ie = mymap.end(); for (; ib != ie; ib++)
{
std::cout << ib->first << " " << ib->second << std::endl;
} return ;
}

映射

 #include <iostream>
#include <map> struct student
{
char *name;
int year;
}; struct stuinfo
{
int id;
student stu;
}; int main()
{
stuinfo infoarray[] = { {,{"hello",}},{ ,{ "hello", }},{,{ "hello", }} }; std::map<int, student>m; for (int i = ; i < ; i++)
{
m[infoarray[i].id] = infoarray[i].stu;
} auto ib = m.begin();
auto ie = m.end(); for (; ib != ie; ib++)//遍历
{
std::cout << (*ib).first << " ";
std::cout << (*ib).second.name << " " << (*ib).second.year << std::endl;
} return ;
}

2 multimap

 #include <iostream>
#include <map> int main()
{
std::multimap<const char *, int>mymap; mymap.insert(std::pair<const char *, int>("司令1", ));
mymap.insert(std::pair<const char *, int>("司令2", ));
mymap.insert(std::pair<const char *, int>("司令3", ));
mymap.insert(std::pair<const char *, int>("司令4", )); mymap.insert(std::pair<const char *, int>("司令1", ));//multimap如果有重复,也会插入成功 auto ib = mymap.begin();
auto ie = mymap.end(); for (; ib != ie; ib++)
{
std::cout << ib->first << " " << ib->second << std::endl;
} return ;
}

multimap的元素可以重复,因此equal_range(const T&);可以实现查找多个相同的元素

 #include <iostream>
#include <map>
#include <string> void main()
{
std::multimap<std::string, std::string>mymap; mymap.insert(std::pair<std::string, std::string>("hello", "a"));
mymap.insert(std::pair<std::string, std::string>("world", "b"));
mymap.insert(std::pair<std::string, std::string>("hello", "c"));
mymap.insert(std::pair<std::string, std::string>("world", "d")); auto ib = mymap.begin();
auto ie = mymap.end(); for (; ib != ie; ib++)
{
std::cout << ib->first << " " << ib->second << std::endl;
}
std::cout << std::endl; auto pfind = mymap.find("hello");//查找
std::cout << pfind->first << " " << pfind->second << std::endl << std::endl;//只输出查找的第一个元素 auto it = mymap.equal_range("hello");
for (auto i = it.first; i != it.second; i++)
{
std::cout << i->first << " " << i->second << std::endl;
}
}

#include <map>的更多相关文章

  1. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  2. Entity Framework 6 Recipes 2nd Edition(13-9)译 -> 避免Include

    问题 你想不用Include()方法,立即加载一下相关的集合,并想通过EF的CodeFirst方式实现. 解决方案 假设你有一个如Figure 13-14所示的模型: Figure 13-14. A ...

  3. error RC1015: cannot open include file 'afxres.h' 解决办法

    在为WindowsPhone8程序添加本地化的过程中遇到这个问题: 问题原因就是afxres.h文件缺失,下载它,放到VS安装目录下的VS\include目录下就可以了(选择目录的时候注意对应对版本) ...

  4. Mybatis常用总结:参数,返回,执行sql,include等

    1.参数注入1.1用#{0},#{1}的形式,0代表第一个参数,1代表第二个参数 public List<RecordVo> queryList(String workerId, Inte ...

  5. jsp中的@include与jsp:include区别详解

    1 前言 搞java开发的人也许都知道在jsp中引入项目中其他文件有如下两种方式 <%@include file="xxx.jsp"%> <jsp:include ...

  6. JSP中编译指令include与动作指令include的区别

    include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改, 否则视为已被修改.由于被包含的文件是在编译时才插入的,因此如 ...

  7. C/C++ 中的include

    当需要使用已有的方法或库时, 可以将它们的头文件#include进来. #include会在preprocess过程中被替换成它包含的代码. 头文件中包含了需要使用的函数/变量的声明. 当然声明与定义 ...

  8. 织梦多语言站点,{dede:include filename=''/}引入问题

    织梦模板include插入非模板目录文件出现"无法在这个位置找到"错误的解决办法 以下是dede V55_UTF8 查dede include标签手册 (3) include 引入 ...

  9. PHP 站点相对包含,路径的问题解决方法(include,require)

    以前看了,很多框架,基本上很少使用相对路径包含.而一般很多做php web站点,喜欢用相对路径. 认为这样,无论目录放到那里. 只要跟另外目录关系一致.那么就不会出现问题.如果一个站点,一般都认为,如 ...

  10. 如何让include标签包裹的布局置于屏幕最下方?

    如何让一个Layout 始终在屏幕的下方 我想让<include layout="@layout/bottom" />一直在屏幕下,怎么做? 1.相对布局中用属性  a ...

随机推荐

  1. ,gitignore 中规则不起作用的原因

    .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件). 这样则好理解, ...

  2. 移动网络山寨版(OpenBTS)的意义或者无意义 【1】

    在美国内华达州北部,靠近加州的峡谷中,有一片平坦的沙漠,名叫黑岩沙漠(Black Rock Desert).自从1986年以来,每年夏天,在这片沙漠中,都会举办一个为期八天的狂欢节.这个狂欢节的名字叫 ...

  3. 论山寨手机与Android 【13】SmartPhone AP系统

    在第9章中我们提到,从功能上讲对于智能手机的一个粗略的概括是,智能手机 == 电脑 + 移动网卡,或者更准确地说,智能手机的硬件结构分为应用程序处理器AP,和基带处理器BP两个部分.这里隐含着两个问题 ...

  4. Memcached 使用与简单监测

    Introduce Memcached作为一个高并发内存Cached系统被很多大公司使用,最近也一直在用Memcached做项目也积累了一些相关经验. 本篇博文主要记录Memcached的一些基本使用 ...

  5. oracle的常见问题与解决

    刚接触oracle,在学习过程中遇到了很多的问题,本文章将会收藏我遇到的问题及如何解决. 错误一:ORA-28009:connection as sys should be as sysdba解决方法 ...

  6. hdu 2769 uva 12169 Disgruntled Judge 拓展欧几里德

    //数据是有多水 连 10^10的枚举都能过 关于拓展欧几里德:大概就是x1=y2,y1=x2-[a/b]y2,按这个规律递归到gcd(a,0)的形式,此时公因数为a,方程也变为a*x+0*y=gcd ...

  7. 网易云课堂_C语言程序设计进阶_第三周:结构:结构、类型定义、联合

    3.1 枚举 3.2 结构 3.3 类型定义 3.1 枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法来表明: enum 枚举类型名字{名字0,...,名字n}; 枚举类型名字通常并不 ...

  8. win下vm10+mac os 10.9安装遇到问题

    在windows 8下安装vm10.0.0+mac os 10.9遇到问题记录例如以下: 一.因为之前我装的vm9+mac os 10.7: 二.准备安装mac os 10.9,把vm9换成vm10: ...

  9. POJ1042 Gone Fishing

    采用贪心策略. 假设他从1湖泊走到x 湖泊,这还剩下 h*12 - sigma(T1--Tx-1).(单位时间为5分钟).然后再用剩下的时间去钓1-x的湖泊的鱼. 每次都选择最多鱼的湖泊钓. code ...

  10. Mongodb 权限管理