C++ Primer 有感(标准库pair)
与关联容器相关的模板类型,包含两个数据成员,在utility头文件中定义.
pair类型提供的操作:
pair<T1,T2> p1;
pair<T1,T2> p1(v1,v2);
make_pair(v1,v2);
p1 < p2;
p1 == p2;
p.first;
p.second;
1.创建和初始化:
pair<string,string> name;
pair<string,vector<int>> data;
以上全部调用pair类型的默认构造函对其成员进行数值初始化,成员初始化为空或0值
也能在定义时提供初始化式:
pair<string,int> Mike("Mike Brown",26);
技巧:使用typedef简化声明
typedef pair<string,string> name;
name dotcom("is","programmer");
2.pair对象的操作
pair的两个成员--first和second都是公有的,使用点操作符就可以访问其成员:
string next;
if (name.first == "gem" && name.second == "linux")
next = name.first;
3.生成新的pair对象
make_pair函数可以生成pair对象,例子:
pair<string,string> next_auth;
string first,last;
while (cin >> first >> last){
next_auth = make_pair(first,last);
}
技巧:可以直接用标准输入流读入数据到pair对象中
pair<string,string> next_auth;
while (cin >> next_auth.first >> next_auth.second){...}
C++ Primer 有感(标准库pair)的更多相关文章
- c/c++ 标准库 pair 介绍
标准库 pair 介绍 问题:map里的元素由key和value组成,这个key和value的组合是什么类型呢??? 答案:pair类型 pair介绍: 它是模板 有2个公有成员可供访问. first ...
- c++ primer 3 标准库类型
3.1 命名空间的using声明 using声明是对某个命名空间做引入.主要作用是简化代码编写. 比如用cout的三种方式: using namespace std; using std::cout; ...
- Primer回顾 标准库类型
string类型的输入操作符: 1.读取并忽略开头所有的空白字符(如空格,换行符,制表符). 2.读取字符直至再次遇到空白字符,读取终止. 用getline读取整行文本 getline.接受两个参 ...
- C++标准库 -- pair
头文件:<utility> 可访问属性: first 第一个值 second 第二个值 可访问方法: swap(pair) 和另外一个pair交换值 其他相关方法: make_pair(v ...
- C++ Primer 笔记——标准库类型string
1.如果使用等号初始化一个变量,实际上执行的是拷贝初始化,编译器吧等号右侧的初始值拷贝到新创建的对象中去:如果不使用等号则执行的是直接初始化. std::string str = "Test ...
- C++ Primer 有感(标准库vector及迭代器)
vector是同一种对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的类存.引入头文件 #include<vector> 1.vecto ...
- 《C++ Primer》第II部分:C++标准库
<C++ Primer>第II部分:C++标准库 前言 把<C++ Primer>读薄系列笔记.本篇为第II部分C++标准库,包含全书第8-12章重难点: IO库 顺序容器 范 ...
- 《C++ Primer》学习笔记【第二部分 C++标准库】
第8章 IO库 IO对象不能复制,即1.IO对象不能存储在vector或其他容器中 2.如果需要传递或返回IO对象,必须传递或返回指向该对象的指针或引用. 一般情况下,如果要传递IO对象以便对它进 ...
- C++ Primer 5th 第17章 标准库特殊设施
C++新标准库提供了很多新功能,它们更加强大和易用. tuple类型 tuple是一种类似pair的模板,pair可以用来保存一对逻辑上有关联的元素对.但与pair不同的是,pair只能存储两个成员, ...
随机推荐
- HashMap和ConcurrentHashMap实现原理及源码分析
HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表, ...
- 02_Action
1.action VS Action action:代表一个Struts2的请求 Action:能够处理action请求的类 属性名必须与JavaBeans属性名相同 属性的类型可以是任意类型,从字符 ...
- ACM Robot Motion
机器人已被编程为按照其指令中的路径进行操作.机器人要移动的下一个方向的指令放在网格中.可能的指令是 N north (up the page) S south (down the page) E ...
- How To Automate Disconnection of Idle Sessions
***Checked for relevance on 30-Apr-2012*** goal: How to automate disconnection of idle sessions fact ...
- Ubuntu14下安装svn仓库,以及权限配置
sudo apt-get update 接下来安装svn apt-get install subversionapt-get install libapache2-svn 检查svn是否安装成功了: ...
- weakref 待解决.
暂时不知为何在控制台多执行一次b()后,del a就不会立即销毁Foo实例. >>> class Foo(object): def __init__(self): self.obj ...
- Spring之MVC模块
Spring MVC的Controller用于处理用户的请求.Controller相当于Struts 1里的Action,他们的实现机制.运行原理都类似 Controller是个接口,一般直接继承Ab ...
- EBS开发之环境迁移
(一)环境迁移说明 1.1 迁移 由于EBS系统开发复杂,一般项目实施都是使用三套或者三套以上的系统,一套作为开发使用系统,一套作为集成测试系统,一套就是企业用的正式环境系统,在项目实施过程中对一 ...
- [lua]写个简单的Lua拓展-sleep函数
这几天在做一个小项目,其中用到了一些基本的API, 例如sleep,获取当前目录等等,lua标准库中没有提供这些接口,虽然所第三方库中也都有实现,但是要用的就那么几个函数,在一个嵌入式系统中安装那么多 ...
- [lua]luasocket.c:20:17: fatal error: lua.h: No such file or directory
安装luasocket的时候出现了如下的错误 问题 $ tar xzf luasocket-2.0.2.tar.gz $ cd luasocket-2.0.2 $ $ make cd src; mak ...