c++几个通用工具

Pairs(对组)

1、class pair可以将两个值视为一个单元,C++标准程序库内多处使用这个class。尤其容器类别map和multimap,就是使用pairs来管理其键值/实值(key/value)的成对元素。任何函数需要返回两个值,都需要pairs

namespace std
{
     template <class T1, class T2>
     struct pair
     {
            //type names for the values
            typedef T1 first_type;
            typedef T2 second_type;

             //member
             T1 first;
              T2 second;

              /*default constructor
              *-T1() and T2() force initialization for built-in types
              */
               pair():first(T1()), second(T2()){
               }

                //constructor for two values
                pair(const T1& a, const T2& b):first(a), second(b){
                }

                //copy constructor with implicit conversions
                template<class U, class V>
                pair(const pair<U, V>& p)
                : first(p.a), second(p.b){
                }
      }

//comparisons
template <class T1, class T2>
bool operator== (const pair<T1, T2>&, const pair<T1, T2>&);
template <class T1, class T2>
bool operator< (const pair<T1, T2>&, const pair<T1, T2>&);
... //similar != <= > >=

//convenience function to create a pair
template <class T1, class T2>
pair<T1, T2> make_pair(const T1&, const T2&);
时间: 2024-11-10 14:58:14

c++几个通用工具的相关文章

Javassist 通用工具之 CodeInjector

Javassist 通用工具之CodeInjector 最近在做一个APM项目,要在运行时代码修改.目前常用修改的几种工具有:ASM.BCEL.Javassist.经过对比,项目中采用了Javassist. 看这篇文章,需要对Javassist有一定的了解,可以参考:Javassist: Quick Start 在使用Javassist过程中,最常用的方法有CtMethod(或者CtConstructor)的insertBefore,insertAfter,addCatch,另外还有一种是inj

Unity3d通用工具类之定时触发器

时隔多日,好不容易挤出点时间来写写博文.不容易,请送我几朵红花,点个赞也行. 今天呢,我们主要来扩展下通用工具类==>定时触发器. 顾名思义,所谓的定时触发器,就是告诉程序在过多长时间后,我要执行某个特定的任务. 比如举个小栗子: 电饭煲,相信大家都用过,当我们出去工作或者上学的时候,我们只要设置下煮饭时间,就可以安心的离开. 电饭煲会自动的开始计时工作,等到了你设置的时间后,他就会自动的开始煮饭啊什么的.而你却可以在远在千里的上班. 智能化,对就是这样的效果.我们今天就来写写这个智能的小东西.

我的开源框架之交互控制、组件通用工具封装

需求: (1)后期的jquery组件具有一些通用的需求,如ajax请求,数组的处理等 (2)从系统UI与服务器集成的角度看,一个系统的前端交互需要做一个统一的封装来接受用户交互,同时统一于服务器的请求 (3)前端的日志功能需要统一 (4)统一的验证入口 (5)综上:我们需要一个封装了通用表单操作(表单转对象,对象填充到表单,打开一个窗口),封装系统前端的统一ajax交互,ajax交互返回格式统一以便做统一处理. 初步代码实现(后期将会根据实际需求调整) 1 /******************

Unity3d通用工具类之生成文件的MD5

今天我们来写写工具类,这个类有什么用呢? 也就是无论你做什么项目,这个工具类你都可以拿来用,之所以通用,是可以适用所有项目. 这节我主要讲如何生成文件的MD5码. 那么这个MD5是个什么鬼东西,读者可以自行百度,其实简略的讲就是验证文件是否被篡改. 什么意思,比如当你去网站下载游戏的客户端软件,当有些黑客喜欢搞出点不好的事情,在你的客户端加些恶意代码之类的. 当黑客改了客户端文件,随之这个文件的MD5也改变了.所以我们只要验证用户下载的客户端的MD5和网站提供的MD5码是否一致,来判断是否要下载

JS组合继承的通用工具函数

此工具函数没实际意义,只是鉴于EXT的extend方法不太好理解,写了一个简化的extend方法,帮助理解. /** * */ E = {}; E.extend = function(sub, sup) { //借用构造函数 sub.prototype = sup; //保留父类的构造函数,以便在子类构造函数中用调用,将父类变量绑定在this下 sub.prototype.superclass = sup.constructor; //因为重写了构造函数所以重新指定constructor,以使i

Android RecyclerView单击、长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类

?? Android RecyclerView单击.长按事件:基于OnItemTouchListener +GestureDetector标准实现(二),封装抽取成通用工具类 我写的附录文章2,介绍了Android如何基于OnItemTouchListener +GestureDetector实现单击.长按事件的监听,由于如今RecyclerView在Android开发是如此的普遍,以及RecyclerView的单击事件是如此的常用,如果像附录文章2那样把一堆事件监听写到业务逻辑代码里面,那得写

Unity3d通用工具类之NGUI图集分解

---恢复内容开始--- Unity3d通用工具类之NGUI图集分解 由于最近需要一些美术资源吗,但是无奈自己不会制作UI,所以就打算去网上的项目中直接找几张可以使用的贴图资源. 但是发现这些资源已经被NGUI自带的打包图集工具打包好了,而且原小贴图也已经全部删掉了,只剩下一个预制物. 那么这个预制物里面包含什么呢: 1.一张大图集贴图 2.大贴图的材质球 3.挂上UIAtla脚本的预制物 那么重点来了,我们该如何获取这张大贴图中的小贴图呢? 这里我写了个小插件,我直接在NGUI源代码里面改:

Unity3d通用工具类之数据配置加载类

今天,我们来讲讲游戏中的数据配置加载. 什么是游戏数据加载呢?一般来说游戏中会有场景地图. 按照国际惯例,先贴一张游戏场景的地图: 在这张地图上,我们可以看到有很多正六边形,正六边形上有树木.岩石等. 哎!那么问题也就来了.大家会思考这张地图怎么啦.关游戏数据配置有什么关系?我们做好场景直接loding进来不就行了? 这也就是问题所在,如果你是直接loding进场景有很多问题: 1.场景是死的.只能是这个做好的场景.如果你想删除一些正六边形,想改变一些树木的位置,如何完成.有人会想,那我再做一个

Node.js数据库连接池操作通用工具(MySQL模块)

出处:OSN开源站点数据库通用工具类,OSN源代码地址,https://github.com/obullxl/osnode-site,百度云演示站点,http://obullxl.duapp.com使用平台:Node.js依赖的项目:OSN开源站点 /** * 数据库模块 */ var config = require("../config"); var options = { 'host': config.dbhost, 'port': config.port, 'user': co

Unity3d通用工具类之解压缩文件

今天,我们来写写c#是如何通过代码解压缩文件的. 在游戏的项目中呢,常常我们需要运用到解压缩的技术.比如,当游戏需要更新的时候,我们会从服务器中下载更新的压缩文件包. 这时候我们就需要解压文件,然后覆盖添加到游戏文件夹去,实现游戏的更新. 通常我们就需要通过代码来实现这一功能. 那么这里呢,我用的是第三发的压缩库,这个是用到一个dll,也就是ICSharpCode.SharpZipLib.Zip.dll 读者可以自行百度下载,这里我提供链接给你们: http://pan.baidu.com/s/