
C/C++
卓耿Drogon
醉舞经阁半卷书,坐井说天阔
展开
-
设计模式-建造者模式
构建型设计模式包括:简单工厂模式、工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。个人认为,原型模式,在java中用处较大,在c++中可以用拷贝构造函数代替。 本次实现建造者模式,主要可以解决构造函数参数过长的场景。 #ifndef BUILDER_MODE #define BUILDER_MODE #include <QDebug> class CSendLc{ public: class CBuild{ public: int a;原创 2022-02-10 15:29:23 · 668 阅读 · 0 评论 -
C++ LIST VECTOR MAP的底层实现
本文参考了网上文章,一搜一大把。 LIST 支持快速增删,底层使用循环双向链表实现。 VECTOR 支持快速随机访问,底层使用数组实现。 当新增数据,超过已申请的剩余空间时,将会自动resize重新申请全部空间,将已有数据和新增数据拷贝给新申请的空间,然后释放原先申请的空间。 MAP KEY值唯一,底层使用红黑树实现,也就是平衡二叉数。 ...原创 2020-09-04 17:16:26 · 449 阅读 · 0 评论 -
设计模式-单例模式
饿汉子模式 #include <QDebug> class CReject{ public: static CReject* GetInstance() { return spInst; //return &Inst; } void PrintReject(); void SetIndex(int a){m_index=a;} public://真正的单例需要把拷贝构造函数私有化 CReject(const原创 2022-01-26 11:15:43 · 753 阅读 · 0 评论 -
Lambda Python与C++11
Lambda Python与C++11 匿名函数,简洁,高效 很多语音都支持匿名函数,主要是简洁和高效。Python的相对容易,C++11的语法复杂,但作为程序员必须得掌握。原创 2021-12-01 19:22:57 · 1152 阅读 · 0 评论 -
函数参数的压栈顺序
对于一般的c++是从右边开始压栈,可以看两个例子: int arr[]={1,2,3,4 }; int *ptr=arr; PrintMN(*(++ptr),*ptr); ptr=arr; PrintMN(*ptr,*(++ptr)); void PrintMN(int m, int n) { qDebug()<<'m'<<m; qDebug()<<'n'<<n; } 上文在QT的输出结果是 m 2原创 2021-12-01 19:11:01 · 1062 阅读 · 0 评论