C/C++
文章平均质量分 81
changan2001
这个作者很懒,什么都没留下…
展开
-
sizeof(结构体)和内存对齐
有的时候,在脑海中停顿了很久的“显而易见”的东西,其实根本上就是错误的。就拿下面的问题来看:struct T{char ch;int i ;};使用sizeof(T),将得到什么样的答案呢?要是以前,想都不用想,在32位机中,int是4个字节,char是1个字节,所以T一共是5个字节。实践出真知,在VC6中测试了下,答案确实8个字节。哎,反正受伤的总是我,我已经有点麻木了,转载 2010-01-18 13:28:00 · 276 阅读 · 0 评论 -
教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的转载 2012-03-31 16:26:08 · 360 阅读 · 0 评论 -
程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结
程序员面试、算法研究、编程艺术、红黑树4大经典原创系列集锦与总结作者:July--结构之法算法之道blog之博主。时间:2010年10月-2012年3月 (一直在收录本blog最新updated文章)。出处:http://blog.csdn.net/v_JULY_v 。声明:版权所有,侵犯必究。 前言 开博已过15个月,回首这15个月,发现自己在本转载 2012-03-31 16:30:23 · 1514 阅读 · 0 评论 -
C语言中volatile关键字的作用
一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的转载 2012-04-05 15:00:44 · 350 阅读 · 0 评论 -
Boost Graph Library 快速入门
Boost Graph Library 快速入门 图领域的数据结构和算法在某些方面比容器更为复杂,图算法在图中移动有着众多的路线,而STL使用的抽象迭代器接口不能有效的支持这些。作为替换,我们为图提供了一个的抽象的结构,其与容器迭代器的目的类似(尽管迭代器扮演着更大的角色)。图1 描述了STL 和BGL 之间的对比 图1: The anal转载 2012-08-07 14:00:30 · 559 阅读 · 0 评论 -
C++ Boost 库文档索引
C++ Boost 库文档索引1 按字母顺序库列表2 按主题库列表2.0 字符串和文本处理( String and text processing)2.1 容器(Containers)2.2 迭代器(Iterators)2.3 算法( Algorithms )2.4 函数对象和高阶编程(Function objects and higher-order programming)2.转载 2012-08-07 14:32:51 · 684 阅读 · 0 评论 -
public继承后,父类与子类访问隐藏
《Effective C++》的第六章节继承与面向对象设计花了大部分的篇幅在介绍继承遮掩(Hiding Inherited Name),那我也效仿下大师,做个小的总结。 public继承的目的是要建立父子类的is-a关系,也就是说用到父类的地方,在子类一定能用。现实的代码编写中,我们主要也是用public继承,所以每个人都有自己一套继承的写法和调用,直到看到Effecitve转载 2012-08-17 10:54:30 · 708 阅读 · 0 评论 -
stl--仿函数
stl--仿函数仿函数(functor)又称之为函数对象(function object),其实就是重载了()操作符的struct,没有什么特别的地方。如以下代码定义了一个二元判断式functor:struct IntLess{bool operator()(int left, int right) const{ return (le转载 2012-08-30 17:25:03 · 3708 阅读 · 0 评论 -
A Presentation of the STL Vector Container
IntroductionThis article aims to introduce the std::vector as well as cover some of the most common vector member functions and how to use them properly. The article will also discuss predicates a转载 2012-09-07 12:21:15 · 1416 阅读 · 0 评论 -
Linux下用gcc/g++生成静态库和动态库(Z)
Linux下用gcc/g++生成静态库和动态库(Z) 在 linux 下,库文件一般放在 /usr/lib 和 /lib 下,静态库的名字一般为 libxxxx.a ,其中 xxxx 是该 lib 的名称动态库的名字一般为 libxxxx.so.major.minor , xxxx 是该 lib 的名称, major 是主版本号, minor 是副版本号转载 2013-10-23 10:55:47 · 2019 阅读 · 0 评论 -
C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多转载 2013-11-05 22:23:17 · 1155 阅读 · 0 评论 -
c++11学习文章
http://www.codeproject.com/Articles/570638/Ten-Cplusplus11-Features-Every-Cplusplus-Developer原创 2013-12-21 13:14:28 · 1340 阅读 · 0 评论 -
What is The Rule of Three?
IntroductionC++ treats variables of user-defined types with value semantics. This means that objects are implicitly copied in various contexts, and we should understand what "copying an object转载 2014-10-09 12:45:40 · 1533 阅读 · 0 评论 -
What is the copy-and-swap idiom?
http://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom转载 2014-10-09 12:36:41 · 1352 阅读 · 0 评论 -
十道海量数据处理面试题与十个方法大总结
海量数据处理:十道面试题与十个海量数据处理方法总结作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。本文之总结:教你如何迅速秒杀掉:99%的海量数据处理面试题。有任何问题,欢迎随时交流、指正。出处:http://blog.csdn.ne转载 2012-03-31 16:03:14 · 333 阅读 · 0 评论 -
C++ Const 用法总结[转]
const主要是为了程序的健壮型,减少程序出错.最基本的用法:const int a=100; b的内容不变,b只能是100也就是声明一个int类型的常量(#define b =100)int const b=100; //和上面作用一样 const指针和引用一般用在函数的参数中int* m = &a; //出错,常量只能用常指针int c= 1;const int*p转载 2011-11-14 10:57:47 · 379 阅读 · 0 评论 -
sizeof进行结构体大小的判断
typedef struct{ int a; char b;}A_t;typedef struct{ int a; char b; char c;}B_t;typedef struct{ char a; int b; char c;}C_t;void main(){ char*a=0; cout cout转载 2010-01-18 12:55:00 · 509 阅读 · 1 评论 -
sizeof计算结构体联合的长度
typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; void main() { printf("%d/n",sizeof(struct data)+sizeof(max)); }为什么是52 如果默认以最大字节对齐size转载 2010-01-18 13:24:00 · 850 阅读 · 0 评论 -
C语言宏定义使用技巧
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的转载 2010-01-25 21:25:00 · 275 阅读 · 0 评论 -
#define、const、typedef的差别
#define 并不是定义变量, 只是用来做文本替换例如:#define PI 3.1415926float angel;angel=30*PI/180;那么,当程序进行编译的时候,编译器会首先将 “#define PI 3.1415926”以后的,所有代码中的“Pi”全部换成 “3.1415926”然后再进行编译。 我查到一个讲const与#define的差别转载 2010-01-25 21:32:00 · 329 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
转载C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EX转载 2010-01-25 21:36:00 · 269 阅读 · 0 评论 -
二维数组的动态分配及参数传递
1. C语言动态分配二维数组(1)已知第二维Code-1char (*a)[N];//指向数组的指针a = (char (*)[N])malloc(sizeof(char *) * m);printf("%d/n", sizeof(a));//4,指针printf("%d/n", sizeof(a[0]));//N,一维数组free(a);(2)转载 2010-03-02 16:49:00 · 285 阅读 · 0 评论 -
const用法详解
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重 const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法2. 必须初始转载 2011-11-14 11:07:54 · 274 阅读 · 0 评论 -
C++中const用法浅析
[转]C++中const用法浅析看到const 关键字,很多程序员想到的可能是const 常量,这可有点象踩到陷井上还不知道自己危险了。读读以下文字会使你对c++中的const有一个全面的认识。const 是C++中常用的类型修饰符,有某些微妙的应用场合,如果没有搞清本源,则错误在所难免。本篇中将对const进行辨析。溯其本源,究其实质,希望能对大家理解const有所帮助,根据思维转载 2011-11-14 11:20:05 · 296 阅读 · 0 评论 -
C++ Virtual详解
http://developer.51cto.com/art/201104/256256.htmC++通过虚函数实现多态."无论发送消息的对象属于什么类,它们均发送具有同一形式的消息,对消息的处理方式可能随接手消息的对象而变"的处理方式被称为多态性。而虚函数是通过Virtual关键字来限定的。下面让我们一起来看。Virtual是C++ OO(面向转载 2011-11-14 13:30:54 · 355 阅读 · 0 评论 -
位操作技巧实例大全
检测一个无符号数是不为2^n-1(^为幂): x&(x+1)将最右侧0位改为1位: x | (x+1)二进制补码运算公式:-x = ~x + 1 = ~(x-1)~x = -x-1 -(~x) = x+1~(-x) = x-1x+y = x - ~y - 1 = (x|y)+(x&y) x-y = x + ~y + 1 = (x|~y)-(~x&y) x^y =转载 2011-11-14 11:17:03 · 318 阅读 · 0 评论 -
C++中的虚函数(virtual function)
http://www.programfan.com/article/2782.html1.简介 虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public: virtual void foo() { cout };class B: pub转载 2011-11-14 13:26:41 · 381 阅读 · 0 评论 -
Xilinx 2012校园招聘火热进行中(硕士,博士)
Xilinx -- The best company to work for!Innovation is our DNA! If you like innovation , please join Xilinx!Since our founding more than 27 years ago, Xilinx has been a semiconductor industry le原创 2011-11-11 10:26:32 · 2022 阅读 · 7 评论 -
从编译器的角度看C++的virtual函数
http://www.cnblogs.com/fte99923/archive/2011/04/24/2026517.html晚自习和秦多铎讨论了C++里多态的问题,发现自己在这方面存在两个严重问题:1.以前只是知其然,但不知所以然,只知道怎么实现多态,但不明白编译器内部大概是怎么实现的,也就导致了编程时很多细节处需要翻书。2.C#后遗症很严重,用VC6写小程序验证自己想法转载 2011-11-14 13:39:08 · 433 阅读 · 1 评论 -
What is the difference between Initializing and Assignment inside a constructor?
http://stackoverflow.com/questions/1711990/what-is-this-weird-colon-member-syntax-in-the-constructor转载 2014-10-10 16:22:34 · 1492 阅读 · 0 评论