4.1 pair类模板
在学习关联容器之前,首先先要了解一下STL中的pair类模板,因为关联容器的一些成员函数返回值都是pair对象,而且map 和multimap中的元素都是pair对象。
1)pair类模板定义
pair实例化出来以后的类都有两个成员变量,一个是first,另一个是second。
STL中还有一个make_pair()函数模板,可以返回一个pair模板对象。源码如下:
template<class T1, class T2>
pair<T1,T2>make_pair(T1 x, T2 y)
{
return (pair<T1,T2>(x,y);
}
2)pair和make_pair的用法
//program 19.4.1.cpp pair和make_pair的用法:
#include <iostream>
using namespace std;
int main()
{
pair<int,double> p1;
cout << p1.first << "," << p1.second << endl; //输出 0,0
pair<string,int> p2("this",);
cout << p2.first << "," << p2.second << endl; //输出 this,20
pair<int,int> p3(pair<char,char>('a','b')); //用第三个构造函数初始化(第三个构造函数是函数模板,参数是一个pair类对象的引用),
//因此生成一个临时对象来进行初始化
cout << p3.first << "," << p3.second << endl; //输出 97,98
pair<int,string> p4 = make_pair(,"hello");
cout << p4.first << "," << p4.second << endl; //输出 200,hello
return ;
}
注意长注释
4.1 pair类模板的更多相关文章
- c++ 中pair类模板的用法详解
pair: 头文件:#include<utility> 类模板:template <class T1, class T2> struct pair 参数:T1是第一个值的数据类 ...
- Pair类模板
>Pair的实现是一个结构体而不是一个类< 1.标准头文件 #include<utility> 似乎无需引入该文件,在std命名空间内也有pair类型 2.格式为:templa ...
- 初步C++类模板学习笔记
类模板 实现:在上课时间的定义给它的一个或多个参数,这些参数代表了不同的数据类型. -->抽象的类. 在调用类模板时, 指定參数, 由编 ...
- C++ 模板常见特性(函数模板、类模板)
背景 C++ 是很强大,有各种特性来提高代码的可重用性,有助于减少开发的代码量和工作量. C++ 提高代码的可重用性主要有两方面: 继承 模板 继承的特性我已在前面篇章写过了,本篇主要是说明「模板」的 ...
- 连分数(分数类模板) uva6875
//连分数(分数类模板) uva6875 // 题意:告诉你连分数的定义.求连分数,并逆向表示出来 // 思路:直接上分数类模板.要注意ai可以小于0 #include <iostream> ...
- C++17尝鲜:类模板中的模板参数自动推导
模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写 std::pair a{1, "a"s}; // C++17 ...
- 《C++ Primer Plus》14.4 类模板 学习笔记
14.4.1 定义类模板下面以第10章的Stack类为基础来建立模板.原来的类声明如下:typedef unsigned long Item; class Stack{private: enum ...
- C++ 函数模板&类模板详解
在 C++ 中,模板分为函数模板和类模板两种.函数模板是用于生成函数的,类模板则是用于生成类的. 函数模板&模板函数 类模板&模板类 必须区分概念 函数模板是模板,模板函数时 ...
- C++ Templates (2.3 类模板的局部使用 Partial Usage of Class Templates)
返回完整目录 目录 2.3 类模板的局部使用 Partial Usage of Class Templates 2.3.1 Concepts 2.3 类模板的局部使用 Partial Usage of ...
随机推荐
- [开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...
不知大家是否经常遇到这种情况:自己的项目有时会在没有连接到电脑时发生崩溃,好不容易发现的bug结果连接到电脑时又复现不出来了:又或者自己写的一个功能在开机启动时产生小bug导致崩溃,而刚启动的机器想让 ...
- Sqli-LABS通关笔录-2
在这个关卡学习到了 1.程序的错误不是学校收费乱来的,单引号的错误和减号的错误要明白 单引号报错. 用第一关的PAYLOAD尝试了下. 来看看源码: 那么我们构造的sql也就变成了 $sql=&quo ...
- 剑指Offer 从尾到头打印链表
题目描述 输入一个链表,从尾到头打印链表每个节点的值. 输入描述: 输入为链表的表头 输出描述: 输出为需要打印的“新链表”的表头 思路: 用容器vector,递归到最后一个元素,push_back到 ...
- Selenium Webdriver元素定位的常用方式
单选框.复选框.文本框和密码框的元素标签都是input,此时单靠tagName无法准确地得到我们想要的元素,需要结合type属性才能过滤出我们要的元素.示例代码如下: public class Sea ...
- 11.2---字符串数组排序,删除变位词(CC150)
这道题主义的就是,要利用数组自带的sort函数. 此外,注意,利用hash来判断是否出现了. public static ArrayList<String> sortStrings(Str ...
- 9.10---堆箱子问题(CC150)
1,牛客网的解题思路:其实这就是求一个最长的递增子序列. 以某一个箱子结尾的最大高度=放在它上面的所有类型中高度最大的那个+他自己的高度. import java.util.*; public c ...
- TLS 与 python thread local
TLS 先说TLS( Thread Local Storage),wiki上是这么解释的: Thread-local storage (TLS) is a computer programming m ...
- centos rpmforge repo
在这里找到合适的rpm包:http://pkgs.repoforge.org/rpmforge-release/ 下载 wget http://pkgs.repoforge.org/rpmforge- ...
- show_sync_logs
存入数据库的操作 CREATE TABLE `show_sync_logs` ( `id` ) NOT NULL AUTO_INCREMENT, `queue` ) DEFAULT NULL COMM ...
- SQL Server 2012 自动增长列,值跳跃问题
介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(in ...