pair的定义C++
template <class T1, class T2> struct std::pair {
typedef T1 first_type;
typedef T2 second_type;
T1 first;
T2 second;
pair() :first(T1()), second(T2()) {}
pair(const T1& x, const T2& y) :first(x), second(y) {}
template<class U, class V>
pair(const pair<U, V>& p) :first(p.first), second(p.second) {}
};
对任何pair,我们总用first和second索引其第一个和第二个元素,无论其类型是什么。
方便地创建pair的函数:
template <class T1, class T2> pair<T1, T2> std::make_pair(T1 &t1, T2 &t2) {
return pair<T1, T2>(t1, t2);
}
在默认情况下,pair将被其元素类型的默认值进行初始化。特别的,这也就意味着将内部类型
的元素初始化为0,将string初始化为空串。如果一个类型没有默认构造函数,要将它作为pair
的元素时,就必须显式提供创建pair的参数。
pair的定义C++的更多相关文章
- C++标准模板库(STL)之Pair
1.Pair的常用用法 pair:两个元素绑在一起作为一个合成元素.可以看成是两个元素的结构体. struct pair { typeName1 first; typeName2 second; }; ...
- STL pair 常见用法详解
<算法笔记>学习笔记 pair 常见用法详解 //pair是一个很实用的"小玩意",当想要将两个元素绑在一起作为一个合成元素, //又不想因此定义结构体时,使用pair ...
- pair常见用法
pair的使用 关于pair 什么是pair 可以将pair看做一个内部有两个元素的结构体,且两个元素的类型是可以指定的. struct pair{ typename1 first; typename ...
- (ACM模板)二元组pair
#include<iostream> #include<cstdio> #include<utility> using namespace std; typedef ...
- Java中的泛型 (上) - 基本概念和原理
本节我们主要来介绍泛型的基本概念和原理 后续章节我们会介绍各种容器类,容器类可以说是日常程序开发中天天用到的,没有容器类,难以想象能开发什么真正有用的程序.而容器类是基于泛型的,不理解泛型,我们就难以 ...
- make_pair
Utilities <utility> 由短小精干的类和函数构成,执行最一般性的工作. 这些工具包括: general types 一些重要的C函数 numeric limits Pair ...
- make_pair() (STL)
转载来的 Pairs C++标准程序库中凡是“必须返回两个值”的函数, 也都会利用pair对象 class pair可以将两个值视为一个单元.容器类别map和multimap就是使用pairs来管理其 ...
- STL map 用法
首先make_pair Pairs C++标准程序库中凡是"必须返回两个值"的函数, 也都会利用pair对象 class pair可以将两个值视为一个单元.容器类别map和mul ...
- STL map详细用法和make_pair函数
今天练习华为上机测试题,遇到了map的用法,看来博客http://blog.csdn.net/sprintfwater/article/details/8765034:感觉很详细,博主的其他内容也值得 ...
随机推荐
- flask web开发日记
from flask import Flask,make_response,redirect,abort app = Flask(__name__) @app.route('/index1') def ...
- 3星|《腾讯产业森林:AI时代的创业密码》:后半部分是较详细的创业指南,前面泛泛介绍腾讯、AI
腾讯产业森林:AI时代的创业密码 前半部分泛泛介绍腾讯对创业者的支持,腾讯支持的创业项目的案例.AI的一些基本介绍,后半部分是比较详细的写给创业者的各阶段行动与选择的指南. 总体评价3星,有一些参考价 ...
- 关于 实体类中 时间字段 为string 类型和 datatime类型 比较
经发现, 数据库中保存时间格式数据 可以正常 排序, 数据中保存时间格式字符串 排序出现问题 /// <summary> /// 修改时间 /// </summary> pu ...
- Mock随机生成数据模拟后台接口
<html> <head> <title>测试</title> <script src="http://code.jquery.com/ ...
- linux虚拟主机的三种方法
虚拟主机虚拟主机是将一台(或者一组)服务器的资源(系统资源.网络带宽.存储空间等)按照一定的比例分割成若干相对独立的“小主机”的技术.每一台这样的“小主机”在功能上都可以实现WWW.FTP.Mail等 ...
- ESX/ESXi 主机的某些存储阵列可能存在读取或写入性能问题 (1002598)
Last Updated: 12/14/2018Categories: Troubleshooting Details 免责声明:本文为 ESX/ESXi hosts might experienc ...
- json和pickle的序列化
PICKle模块:
- isinstance、issubclass、反射
一.isinstance.issubclass # isinstance(obj, cls) 检查obj是否是cls的对象 class A(object):pass a = A() print(isi ...
- (蓝桥)2017C/C++A组第一题迷宫
#include<iostream> #include<memory.h> using namespace std; char mi[10][10] ; int visited ...
- i++与++i的区别及效率
i++与++i的区别及效率 先看看基本区别:i++ :先在i所在的表达式中使用i的当前值,后让i加1++i :让i先加1,然后在i所在的表达式中使用i的新值 看一些视频教程里面写for循环的时候都 ...