我的C++实用程序使用笔记。
实用程序
使用时需要包含头文件:
#include <utility>
二元组pair
二元关联容器的元素类型是键类型和附加数据类型的组合,这种组合类型可以用一个二元组来表示。
二元组实现
template <class T1, class T2>
struct pair {
T1 first; // 二元组的第一元
T2 second; // 二元组的第二元
pair(); // 默认构造函数
pair(const T1& x, const T2& y); // 构造first = x,second = y的二元组
template <class U, class V> pair(const pair<U, V>& p); // 拷贝构造函数
template <class U, class V> pair(pair<U, V>&& p); // 移动构造函数,&&表示右值引用,C++11引入
template <class U, class V> pair(U&& x, V&& y); // 使用右值引用参数,创建pair对象,C++11引入
}
二元组辅助构造函数make_pair()
原型声明:
// C++98
template <class T1, class T2>
pair<T1, T2> make_pair(T1 x, T2 y);
// C++11
template <class T1, class T2>
pair<V1, V2> make_pair(T1&& x, T2&& y);
实现:
// C++98
template <class T1, class T2>
pair<T1, T2> make_pair(T1 x, T2 y) {
return (pair<T1, T2>(x, y));
}
// C++11
template <class T1, class T2>
pair<T1, T2> make_pair(T1 x, T2 y) {
return (pair<V1, V2>(forward<T1>(x), forward<T2>(y)));
}
forward()
move()
参考
- 《C++语言程序设计》
- cplusplus
- cppreference
- C++ STL pair用法详解-C语言中文网