c++
文章平均质量分 77
HayesPan
sysu信科男
展开
-
singleton class
#include using namespace std;#ifndef _WH_SINGLETON_H_#define _WH_SINGLETON_H_/* disallow copy constructor and assignment operator */#define DISALLOW_COPY_AND_ASSIGN(TypeName) \转载 2014-01-26 13:14:40 · 577 阅读 · 0 评论 -
Linux下Gcc生成和使用静态库和动态库详解
转自:一、基本概念1.1什么是库在windows平台和linux平台下都大量存在着库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于windows和linux的平台不同(主要是编译器、汇编器和连接器的不同),因此二者库的二进制是不兼容的。本文仅限于介绍linux下的库。 1.2库的种类转载 2014-10-16 08:59:59 · 531 阅读 · 0 评论 -
Linux多进程编程学习笔记一
1. Linux下进程的结构: Linux下一个进程在内存里有三部分的数据:数据段,堆栈段,代码段. 代码段存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们可以使用同一个代码段. 堆栈段存放子程序(注意是子程序)的返回地址,子程序的参数以及程序的局部变量. 数据段存放全局变量,常熟以及动态数据分配的数据空间(如用malloc之类的函数取转载 2014-10-03 16:32:06 · 485 阅读 · 0 评论 -
C语言中的预处理详解
目录 一.预处理的工作方式... 31.1.预处理的功能... 31.2预处理的工作方式... 3二.预处理指令... 42.1.预处理指令... 42.2.指令规则... 4三.宏定义命令----#define. 43.1.无参数的宏... 43.2带参数的宏... 53.3.预处理操作符#和##. 63.3.1.操作符#. 63.3.2.转载 2014-10-10 16:26:30 · 587 阅读 · 0 评论 -
Tarjan算法-求强连通分量
摘自:#define M 5010 //题目中可能的最大点数 int STACK[M],top=0; //Tarjan 算法中的栈 bool InStack[M]; //检查是否在栈中 int DFN[M]; //深度优先搜索访问次序 int Low[M];转载 2014-04-27 18:10:54 · 706 阅读 · 0 评论 -
multimap排序
如果键值是string型,直接输出就可以了,multimap是排好序了的,如果你要用C风格字符串,就自定义一个排序规则,需要在创建 multimap的时候做:#include #include #include using namespace std;struct cstrcmp_less{ bool operator () (const char* a, const char转载 2014-01-26 14:11:50 · 929 阅读 · 0 评论 -
模版特例化
模板是编译时多态, 函数体内是运行时,运行时判断类型是type_id函数返回type_info类型的对象这里只需要个模板特化就可以了templateT work( T ) { // 编译时,不可能知道T是什么类型.所以T叫做泛型.}template<> // 特化版int work( int a){// 这里明确知道T是int.// 在这里提供对 T == int时的特殊转载 2014-01-26 13:17:31 · 521 阅读 · 0 评论 -
C++ const相关问题 CV限定问题
http://hi.baidu.com/monsterfairy/item/030b4be52951c22c5a2d6493 情况1:非成员函数不能有CV限定,即const,volatile限定关键字情况2:静态成员函数不能有CV限定,即const,volatile限定关键字总结:只有非静态成员函数才可以使用const,volatile限定关键字写个转载 2014-01-26 13:59:46 · 875 阅读 · 0 评论 -
STL之六:map/multimap用法详解
http://blog.csdn.net/longshengguoji/article/details/8547007map/multimap 使用map/multimap之前要加入头文件#include,map和multimap将key/value当作元素,进行管理。它们可根据key的排序准则自动将元素排序。multimap允许重复元素,map不允许重复元素。转载 2014-01-26 13:54:36 · 632 阅读 · 0 评论 -
c++的萃取技术
typename std::iterator_traits::value_type const value=* i;http://zhidao.baidu.com/question/470579173.html ;转载 2014-01-26 13:47:51 · 533 阅读 · 0 评论 -
c++ stl vector usage
C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include 。vector 是一个类模板。不是一种数据类型,vector是一种数据类型。Vector的存储空间是连续的,list不是连续存储的。一、 定义和初始化vector v1转载 2014-01-26 13:21:03 · 784 阅读 · 0 评论 -
虚基类
声明虚基类的一般形式为:class 派生类名 : virtual 继承方式 基类名经过这样的声明后,当基类通过多条派生路径被一个派生类继承时,该派生类只继承该派生类一次,也就是说,基类成员只保留一次。为了保证虚基类在派生类中只继承一次,应当在该基类的所有直接派生类中声明为虚基类,否则仍然会出现对基类的多次继承规定:在最后的派生类中不仅要负责对其直接基类进行初始化,还要负责对虚基类初始化C++编译系转载 2014-01-26 13:34:31 · 561 阅读 · 0 评论 -
acm代码模版
#include #include #include #include #include #include #include #include #include using namespace std;#define INF 0x7FFFFFFF#define INFLL 0x7FFFFFFFFFFFFFFF#define BIG 0x4F4F4F4F#define P转载 2014-01-26 13:23:24 · 606 阅读 · 0 评论 -
C++中的临时对象(拷贝构造函数)
我们知道在C++的创建对象是一个费时,费空间的一个操作。有些固然是必不可少,但还有一些对象却在我们不知道的情况下被创建了。通常以下三种情况会产生临时对象: 1,以值的方式给函数传参; 2,类型转换; 3,函数需要返回一个对象时; 现在我们依次看这三种情况: 一,以值的方式给函数传参。 我们知道给函数传参有两种方式转载 2014-01-26 13:45:52 · 2847 阅读 · 1 评论 -
c++ stl list usage
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一个元素 front()转载 2014-01-26 13:22:10 · 630 阅读 · 0 评论 -
linux c/c++ GDB教程详解
(转自:http://blog.csdn.net/lyjtynet/article/details/4057723)学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试转载 2014-12-20 20:36:13 · 608 阅读 · 0 评论