【试着自己写一个STL 】Knife_STL —— pair.h
来源:互联网 发布:淘宝6.0官网下载安装 编辑:程序博客网 时间:2024/05/21 02:52
#ifndef KNIFE_PAIR_H#define KNIFE_PAIR_H#include "config.h"#include <ostream>_STL_NAMESPACE_BEGINtemplate <typename A_Type, typename B_Type>struct pair {typedef A_Type first_type;typedef B_Type second_type;A_Type first;B_Type second;// 这个在GP编程中会使用的特殊方法可以好好学学pair() : first(A_Type()), second(B_Type()) {}pair(const A_Type& a, const B_Type& b) : first(a), second(b) {}// 这个是保证转型情况下的正常执行,如mk_pair(3.4, 4.5)会自动得到// pair<double, double>的类型,但我们如果需要的是float类型// 那么我们必须得用这个函数进行转型template <typename C_Type, typename D_Type>pair(const pair<C_Type, D_Type>& p) : first(p.first), second(p.second) {}};template <typename A_Type, typename B_Type>inline bool operator==(const pair<A_Type, B_Type>& pair1, const pair<A_Type, B_Type>& pair2){return pair1.first == pair2.first && pair1.second == pair2.second;}// 这是很重要的,pair在做基本operation时,应该要求他的成员也只做相应的operation// 在我们以后设计类时可以做借鉴template <typename A_Type, typename B_Type>inline bool operator<(const pair<A_Type, B_Type>& pair1, const pair<A_Type, B_Type>& pair2){return pair1.first < pair2.first || (!(pair2.first < pair1.first) && pair1.second < pair2.second);}template <typename A_Type, typename B_Type>inline std::ostream& operator<<(std::ostream& os, const pair<A_Type, B_Type>& p){os << "Pair<" << p.first << ", " << p.second << "> ";return os;}template <typename A_Type, typename B_Type>inline pair<A_Type, B_Type> mk_pair(const A_Type& a, const B_Type& b){return pair<A_Type, B_Type>(a, b);}_STL_NAMESPACE_END#endif /* 对这个类我增加了输出到console中的操作符<<重载 */
0 0
- 【试着自己写一个STL 】Knife_STL —— pair.h
- 【试着自己写一个STL 】Knife_STL —— alloc.h
- 【试着自己写一个STL 】Knife_STL —— algobase.h
- 【试着自己写一个STL 】Knife_STL —— config.h
- STL赏析——pair
- c语言自己写一个.h的头文件
- HDU 5112 —— STL pair 的用法
- 例说数据结构&STL(十三)——pair
- STL Pair
- pair(STL)
- [STL] pair
- STL::pair
- STL-pair
- stl pair
- STL pair
- stl-map stl-pair
- 【STL】STL之pair
- Shader——自己写的一个序列帧Shader
- iOS页面跳转及数据传递
- 【试着自己写一个STL 】Knife_STL —— alloc.h
- FFMpeg的解码流程
- 【试着自己写一个STL 】Knife_STL —— algobase.h
- 音视频同步原理解析;音频编码和解码原理
- 【试着自己写一个STL 】Knife_STL —— pair.h
- 大方面详细解析音视频通话系统
- 【试着自己写一个STL 】Knife_STL —— config.h
- 学习之路
- 关于windows7安装python、pip、virtualenv
- 再开一坑sgu吧
- [leet code] Length of Last Word
- winedit 永久试用的办法
- 一个人的旅行(Dijkstra算法)