C++
hezhch123
这个作者很懒,什么都没留下…
展开
-
视C++是一个语言联邦 读Effective_C++
C。说到底C++仍是以C为基础。区块、语句、预处理器、内置数据类型、数组、指针等统统来自C。许多时候C++对问题的解法不过就是较高级的C解法,但当你以C++内的C成分工作时,高效编程守则映照出C语言的局限:没有模版,没有异常,没有重载。Object-Oriented C++。这部分也就是C with Classes所诉求的:classes(包括构造函数和析构函数),封装、继承、多态、virut原创 2011-10-21 22:20:25 · 551 阅读 · 0 评论 -
QT下使用boost::threadpool编译问题
threadpool不属于BOOST,以下是安装链接http://www.cnblogs.com/kingcat/archive/2012/05/07/2487192.html作者使用的是BOOST1.58.0版本由于安装BOOST库的缘故导致系统下的动态库如以下形式:libboost_thread.so.1.58.0有一个1.58.0的后缀,虽然boost库可以正常调原创 2016-10-22 14:30:14 · 598 阅读 · 0 评论 -
Reducing Procedure Calls
data_t* get_vec_start(vec_ptr v) { return v->data; } void combine3(vec_ptr v, data_t* dest) { long int i; long int length = vec_length(v); data_t* data = get_vec_start(v);原创 2012-03-08 20:14:56 · 507 阅读 · 0 评论 -
Loop Unrolling
void combine5(vec_ptr v, data_t* dest) { long int i; long int length = vec_length(v); long int limit = length - 1; data_t* data = get_vec_start(v); data_t acc = IDENT;原创 2012-03-09 22:24:30 · 697 阅读 · 0 评论 -
ProgramExample
typedef int data_t; typedef struct { long int len; data_t* data; }vec_rec, *vec_ptr; #define IDENT 0 #define OP + //#define IDENT 1 //#define OP * vec_ptr new_vec(long int len原创 2012-03-08 19:43:07 · 444 阅读 · 0 评论 -
Eliminating Loop Inefficiencies
void combine2(vec_ptr v, data_t* dest) { long int i; long int length = vec_lenght(v); *dest = IDENT; for (i = 0; i length; ++i) { data_t val; get_vec_elem原创 2012-03-08 20:06:01 · 523 阅读 · 0 评论 -
Eliminating Unneeded Memory References
void combine4(vec_ptr v, data_t* dest) { long int i; long int length = vec_length(v); data_t* data = get_vec_start(v); data_t acc = IDENT; for (i = 0; i { acc原创 2012-03-08 20:24:44 · 445 阅读 · 0 评论 -
Enhancing Parallelism
void combine6(vec_ptr v, data_t* dest){ long int i; long int length = vec_length(v); long int limit = length - 1; data_t* data = get_vec_start(v); data_t acc0 = IDENT;原创 2012-03-09 22:29:41 · 441 阅读 · 0 评论 -
Reassociation Transformation
void combine7(vec_ptr v, data_t* dest){ long int i; long int length = vec_length(v); long int limit = length - 1; data_t* data = get_vec_start(v); data_t acc = IDENT;原创 2012-03-09 22:33:42 · 716 阅读 · 0 评论 -
Optimizing Program Performance
1:Eliminating Loop Inefficiencies2:Reduce Procedure Calls3:Eliminating Unneeded Memory References4:Loop Unrolling5:Multiple Accumulators6:Reassociation Transformation看了下优化程序性能,感触良多,接下来原创 2012-03-07 22:37:32 · 524 阅读 · 0 评论 -
读书笔记 Effective STL
STL是建立在泛化之上的。数组泛化为容器,参数化了所包含的对象的类型。函数泛化为算法,参数化了所用的迭代器的类型。指针泛化为迭代器,参数化了所指向的对象的类型。原创 2012-03-03 18:53:22 · 404 阅读 · 0 评论 -
读书笔记 Effective C++
polymorphic(带多态性质的)base classes应该声明一个virtual析构函数。如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。 Classes的设计目的如果不是作为base classes使用,或不是为了具备多态性(polymorphically),就不该声明virtual析构函数。原创 2012-02-19 12:34:46 · 411 阅读 · 0 评论 -
读书笔记 Effective C++
声明一个pure virtual函数的目的是为了让derived classes只继承函数接口。声明简朴的(非纯)impure virtual函数的目的,是让derived classes继承该函数的接口和缺省实现。声明non-virtual函数的目的是为了令derived classes继承函数的接口及一份强制性实现。由于non-virtual函数代表的意义是不变性(invarian原创 2012-02-23 20:36:13 · 343 阅读 · 0 评论 -
读书笔记 Effective C++
尽量以pass-by-reference-to-const替换pass-by-value。前者通常比较高效,并可避免切割问题(slicing problem) 以上规则并不适用于内置类型,以及STL的迭代器和函数对象。对它们而言,pass-by-value往往比较适当。原创 2012-02-22 18:55:16 · 375 阅读 · 0 评论 -
QT链接muduo库
muduo编译安装链接http://blog.csdn.net/liuweihui521/article/details/52556375使用muduo库中自带的例子DiscardServer,路径examples/simple/DiscardServer;代码直接拷贝即可。在PRO文件中添加以下数据:LIBS += /usr/lib/muduo/libmudu原创 2016-10-20 19:36:07 · 1017 阅读 · 0 评论