本文主要讨论C++程序设计的一种常用技术——智能指针(smart pointer),主要内容包括引用计数(reference count)留一份指针指向的
问题:要对以map中的数据进行按value排序难点:map中的数据是按照key排序的,用for循环进行迭代器输出的顺序,就是按照key排序的顺序。但是按value排序就不可能了。方案:STL中的sort函数原型: 1. #include <algorithm> 2. using namespace 3. template <class 4. void 5.
对于赶时间的朋友,只看第一段就好了。 首先,我非常肯定以及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别
最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。 首先说说DIR这一结构体,以下为DIR结构体的定义: 1. struct __dirstream 2. { 3. void *__fd; 4. char *__data; 5. int __entry_data;
最近一段时间,在工作方面比较闲,分配的Bug不是很多,于是好好利用这段时间就着源代码看了些许模块, 主要方式 还是贼看贼看代码, 同时利用烧机的便利,加Log观看,基本上都能弄个脸熟 。心里想着该写点什么了?可是水平不够,再加上 包括很多真正实现地方--
在代码中当一行的代码过多的时候,对于代码的阅读特别不方便,这时,需要使用换行符“\”。在使用换行符的时候要注意两点:1.c的编译器是根据“;”来判断是否为一个语句的,所以只要不在小括号中换行都是可以的。2.不要把空格夹在中间!
From: http://blog.csdn.net/solstice/article/details/6186978匿名 namespace (anonymous namespace 或称 unnamed namespace) 是 C++ 的一项非常有用的功能,其主要目的是让该 namespace 中的成员(变量或函数)具有独一无二的全局名称,避免名字碰撞 (name collision
From: 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程
t
问题如下:最近查找bug时碰到了循环体中局部变量的内存分配相关的问题,于是查找相关知识,产生了一点疑问。先写代码: 1 int main() 2 { 3 int i; 4 bool bl = true; 5 for (i=0; i<3; i++) 6 { 7 int nvar[10]; 8 if(bl) 9
sys/types.h中文名称为基本系统数据类型。在应用程序源文件中包含 以访问 _LP64 和 _ILP32 的定义。此头文件还包含适当时应使用的多个基本
实战Makefile.amMakefile.am是一种比Makefile更高层次的规则。只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等构
droid.mk build file written to describe your C and C++ source files to the AndroidNDK.
C++丢了很长时间了,没想到还有捡回来的一天,各种不适应,尤其是指针相关的,SIGSEGV这几天真没少见,总结下自己遇到的SIGSEG因导致RA
在suse64位平台上,libx a是一个静态库,可以编译成功,但另一动态库链接它时报如下错误: usr lib64 gcc x86_64-suse-linux 4 1 0 x86_64-suse-linux bin ld: usr local libx a(z o): relocatio 在suse64位平台上,libx.a是一个静态库,可以编译成功,但另一动态库链接它时报如下错误:
-fno-rtti 禁用运行时类型信息-fno-exceptio
1. 在所有的预处理指令中,#Pragma指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。
在std中还有个ostringstream这么方便的格式化输出的工具 1. std::string generate() 2. { 3. ostringstream osm; 4. "xxxx " 5. 6. // 清空之前的内容 7. ""); 8. 9. // 浮点数转换限制 10. double 11.
处理过后就不再为空,编译器会自动地为我们声明一些memberfunction,一般编译过去就相当于class Empty{public:Empty(); //
From: http:
printf格式输出:%[flags][width][.perc][F|N|h|l]type用到了flags中的 0 (注意是零不是欧) ,其百科描述为:将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用-)width 即表示需要输出的位数。 1. int a = 4; 2. printf("%03d",a); 输出:004也可以用 * 代替位数,在后面的参数列表中用变量控制输出位
C/C++中有一个快速排序的标准库函数 qsort ,在stdlib.h 中声明,其原型为:void qsort(void *base, int nelem, unsigned int width, int ( * pfCompare)( const void *, const void *)); 使用该函数,可以对任何类型的一维数组排序。该函数参数中,base 是待排序数组的起始地址,nele
printf("new"); return malloc(len); } void * opera
__gnu_cxx这是一个名子空间名(namespace)名,在GCC编译器使用的C++库中定义(名子空间的定义与一般变量不同,并不局限于某一文件)。定义这个名子空间的目的有二:一是将一些内部名子(编译器实现相关)与 std 空间隔离,二是为了实现一些公用的GNU扩展。
是c99中引进的一个标准C库的头文件。一,是什么stdint.h是c99中引进的一个标准C库的头文件.二、干什么C99中,中定义了几种扩展的整数类型和宏。规则如下(其中N可以为8,16,32,64)整数类型被用于声明已知大小的整数,或显
进行类体设计时,会发现某个类的对象是独一无二的,没有完全相同的对象,也就是对该类对象做副本没有任何意义.因此,需要限制编译器自动生动的拷贝构造函数和赋值构造函数.一般参用下面的宏定义的方式进行限制,代码如下:// A macro to
From: (stddef.h)C Standard definitionsThis header defines several types implicitly generated or used by certain language expressions.Typesptrdiff_tResult of pointer subtraction (type)
当程序发生Segmentation fault的时候,大多数时候可以用printf就能搞定。 但有时候可能遇到比较复杂的情况:比如,程序是已经执行完我们自己写的程序的最后一句代码了才Segmentation fault。这种情况printf就无用。就要请出大名鼎鼎
Fgcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下。
spdy_binary_buffer: 工具类,作用就是一个可以自动扩容和内存空间回收的buffer(主要用来保存http和spdy传输的内容),单
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号