C++相关博文
文章平均质量分 52
总结记录C++相关知识点
ustczhng2012
望尽天涯路->【为伊消得人憔悴】->那人却在灯火阑珊处
展开
-
第三方链接库使用方法总结
安装使用 编译期 对于一个比较大第三方库,其头文件和库文件的数量是比较多的,如果我们一个个手动地写,那将是相当麻烦的。 gcc main.c `pkg-config --cflags --libs gtk2.0` -o main。其中引号命令就is把gtk的头文件路径和库文件列出来,形成一个.pc文件,让编译去获取,--cflags和--libs分别指定头文件和库文件 编译器如何知道这个.pc文件路径呢?用root权限打开/etc/bash.bashrc文件 ..原创 2022-03-11 17:15:15 · 1613 阅读 · 1 评论 -
C++性能测量方法
基于gperftools工具分析C++代码性能热点sudo apt-get install google-perftools graphviz#注:这里libprofiler.so.0可以通过find命令在/usr/lib/目录下搜索LD_PRELOAD=/usr/lib/libprofiler.so.0 CPUPROFILE=./main.prof ./main google-pprof --web ./main ./main.prof ...原创 2020-08-29 15:31:57 · 238 阅读 · 0 评论 -
GOF-23种设计模式UML图
创建型(单原建工)单例模式原型模式建造者模式简单工厂模式工厂方法模式结构型(适外桥享,代组装)适配器模式外观模式桥接器模式享元模式代理模式组合模式装饰器模式行为型...原创 2020-08-18 14:26:35 · 473 阅读 · 0 评论 -
C++迭代器失效情况总结
迭代器失效分三种情况考虑,也是分三种数据结构考虑,分别为数组型,链表型,树型数据结构。数组型数据结构:该数据结构的元素是分配在连续的内存中,insert和erase操作,都会使得删除点和插入点之后的元素挪位置,所以,插入点和删除掉之后的迭代器全部失效,也就是说insert(*iter)(或erase(*iter)),然后在iter++,是没有意义的。解决方法:erase(*iter)的返回值是下一个有效迭代器的值。iter =cont.erase(iter);链表型数据结构:对于list型的数据结.原创 2020-08-12 10:48:32 · 248 阅读 · 0 评论 -
设计原则、设计模式链接
设计原则:https://zhuanlan.zhihu.com/p/24614363原创 2020-06-29 17:24:30 · 147 阅读 · 0 评论 -
C++类单例设计模式范例及注意要点
单例模式是为了让类在整个进程全局只有一个实例对象,在多线程时有几个点需要注意:单例中成员方法在多线程访问时是线程安全的 单例中如果有成员变量,成员方法对改成员变量是只读访问,那也是线程安全的 单例中如果有成员变量,成员方法对改成员变量是既要读取又要修改,那就需要对该方法进行多线程访问加锁考虑。class SingleTon{public: static SingleTon&a...原创 2020-03-21 14:33:32 · 266 阅读 · 0 评论 -
C++常用方法笔记总结
Vector方法vector<int> temp(10, 2); //初始化 temp.size()为10temp.push_back(5); //增加元素 //删除元素(下面4行)vector<int> temp(10, 2); // temp.size()为10vector<int> :: iterator it;it = temp.beg...原创 2019-11-30 11:11:08 · 248 阅读 · 0 评论 -
C++ 字符串成员函数
字符串转为字符串数组 string str = "user";// 1.该方法只能赋值给const字符变量// 2.str内容发生变化时,b指向内容也会发生变化const char * b = str .c_str(); 字符串转为字符数组 string str = "user";// 1.该方法只能赋值给const字符变量// 2.str内容发生变化时,b指向内...原创 2019-11-25 20:19:09 · 329 阅读 · 0 评论 -
c++记录程序运行时间方法
// 方法一:采用clock函数#include<time.h>int main(){ clock_t beginTime, endTime; beginTime= clock(); endTime= clock(); cout << "Running time is: " << static_cast<doub...原创 2019-11-12 21:32:17 · 692 阅读 · 0 评论 -
C++ 字符,字符串,数值转换
字符,字符串,数值转换字符转为字符串string a;char *b = (char*)malloc(sizeof(char));a = b;字符串转为字符string a;int len = a.length();char *b = (char*)malloc((len + 1)*sizeof(char));a.copy(b, len, 0);字符串转为数值...原创 2018-09-30 23:41:36 · 241 阅读 · 0 评论 -
关于jsoncpp源码使用说明
目录引言静态链接库方式直接使用源码方式常见问题引言在项目中,存在将string格式与json格式数据结构互相转换的场景。为避免重复造轮子,可从Github下载源码(C++),链接:https://github.com/Eureca2017/jsoncpp,如图1所示。图1 Github源码仓库示意图上述链接下载的工程为jsoncpp-master,其内容较多且较杂...原创 2018-08-19 20:49:47 · 1872 阅读 · 0 评论