//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. php设计模式之:观察者模式

    转载自php面向对象设计模式 之 观察者模式 问题 假如一个小贩, 他把产品的价格提升了, 不同的消费者会对此产生不同的反应.一般的编程模式无非是获取提升的价格,然后获取所有的消费者,再循环每个消费者 ...

  2. WPF中PasswordBox控件无法绑定Password属性解决办法

    在WPF中,默认的Password控件的Password属性是不允许为之绑定的,下面是一个解决绑定Password的方法的代码: 1.前台代码 <Window x:Class="Pas ...

  3. Android APN配置

    APN概念 APN(Access Point Name),即“接入点名称”,用来标识GPRS的业务种类,目前分为两大类:CMWAP(通过GPRS访问WAP业务).CMNET(除了WAP以外的服务目前都 ...

  4. ip,子网掩码,网关,DNS

    要配置一个局域网通信的计算机(也就是同一个网络): IP地址 子网掩码 要配置一个跨网段通信的计算机: IP地址 子网掩码 网关(路由使用) 要配置一个可上网的计算机: IP地址 子网掩码 网关 DN ...

  5. c语言结构体排序示例

    设计性实验编程实现对学生成绩表的相关信息排序.实验要求:⑴ 建立一个由n个学生的考试成绩表,每条信息由学号.姓名和分数组成.⑵ 按学号排序,并输出排序结果.⑶ 按分数排序,分数相同的则按学号有序,并输 ...

  6. MVC中Json的使用:Controller中Json的处理【转】

    一.当查询得到的数据符合前台要求,不需要做任何处理,直接DataList To Json 返回前台. 代码: , out recordCount); return Json(allEntities, ...

  7. 使用VNC完毕远程调用图形化

    原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明下面出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...

  8. [置顶] java web 动态服务器

    写了一个java web 动态服务器,主要通过内部类来实现,动态类使用了外部类,采用了 classforname 实例化,动态类的构造方法不能带参数, 效果都出来了,分享给有需要的 朋友.判断做的不够 ...

  9. Eclipse快捷键大全(一)

    Eclipse快捷键大全(一) 常用(系统默认): 1.Format (自动排版) : Ctrl+Shift+F 2.Organize Imports (自动导入) : Ctrl+Shift+O 3. ...

  10. 关于css3中before与after用单冒号还是双冒号的疑虑

    在 CSS3 中为了区别伪元素和伪类为伪元素使用了双冒号,因此如果使用了 display 或者 width 等属性时使得显示脱离了原本元素后,建议按照标准双写.