C++
哀酱
自己的学习笔记,博客主要是写给自己看的顺便分享,可读性不佳评论不回复还请见谅见谅
展开
-
C/C++ 基本类型及是否需要多线程锁 参考资料
C/C++ 基本类型及是否需要多线程锁 参考资料分析很透彻的C/C++ 基本类型及是否需要多线程锁https://blog.csdn.net/wanghualin033/article/details/79832827关于C++多线程程序中简单类型(int/bool)的安全性https://blog.csdn.net/superarhow/article/details/18009667?utm_medium=distribute.pc_relevant.none-task-blog-2%7Ed..原创 2021-04-13 11:01:54 · 353 阅读 · 0 评论 -
【转】Google C++ 编码规范一览表
图片转自网络 另: Google C++编码规范可参考 Google开源项目风格指南 CSDN博客 Google C++编码规范 CSDN博客 Google 代码规范工具Cppint的使用转载 2017-10-31 21:07:33 · 496 阅读 · 0 评论 -
C++ 批量读取文件夹中的文件名
使用C++批量读取文件名 方法1(Linux)#include <sys/types.h>#include <dirent.h>#include <unistd.h>#include <string>#include <vector>using namespace std;DIR* dir;struct dirent* ptr;vector<string> fileList; dir原创 2017-09-08 16:35:20 · 1865 阅读 · 0 评论 -
linux&windows utf8和gbk编码识别&互相转换
linux默认是utf8编码,Windows默认是gbk编码,linux系统下可用locale命令查看系统编码。linux下使用iconv命令转换文件编码iconv -f 源编码 -t 目标编码 1.txt > 2.txt如 gbk转utf8iconv -f gbk -t utf8 1.txt > 2.txt2.txt是转换完的文件,如覆盖源文件,去掉>2,txt即可utf8和gbk编码判定转自cs原创 2017-11-23 10:46:19 · 5243 阅读 · 0 评论 -
C++ STL 切分字符串
pattern是分隔符,如”.”。 返回被切分的一系列子串。std::vector< std::string > splitString_STL(const std::string& str, const std::string& pattern){ std::vector<std::string> subStrings; if (str.empty()) ret原创 2017-12-03 21:48:07 · 1377 阅读 · 0 评论 -
linux & windows C++开发差异
新手注意事项1、文件与目录的大小写以及路径分隔符的差别。 windows下不区分大小写,路径分隔符一般使用”\”;linux下区分大小写,路径分隔符使用”/”。 2、itoa()函数在linux下并不存在。 所以使用类似sprintf();之类的函数是个不错的替代。(为什么说是类似函数,看下面一条啦) 3、 _snprintf()与_vsnprintf()的差别。 sprintf()不能转载 2017-11-03 17:46:19 · 13161 阅读 · 5 评论 -
C++ 参数传递 nonreference parameters & reference parameters 非引用和引用类型
参考《C++ Primer》Section 7.2 Argument Passing中的内容。nonreference patameters非引用型参数先拷贝一份,然后在拷贝的这份参数上进行操作。不对实际的参数进行改变,这份拷贝在函数结束时生命周期终结。因为传递非引用型的参数会拷贝数据,所以如果传递string, vector或者其他容器类型,将会带来时间和空间的开销。如果传递的参数是非引用型原创 2018-01-10 14:56:22 · 713 阅读 · 0 评论 -
待整理
void指针是可以指向任意数据类型的指针,指向任意数据类型的指针都可赋值给一个void指针。 void * 表示该指针与一地址值相关,但不清楚存储在该地址上对象的类型。void指针必须强转使用,例如(int*)malloc函数。基类构造析构函数、子类构造析构函数和子类成员变量构造析构函数的调用顺序。 对于构造函数:基类构造函数 > 子类成员变量构造函数 > 子类构造函数 对于析构函数:子类析原创 2018-03-01 09:55:41 · 242 阅读 · 0 评论 -
C++源文件扩展名
参考自《c++ primer》原创 2017-10-31 21:02:32 · 6480 阅读 · 1 评论 -
Effective C++ 第三章 资源管理 理解&总结
10原创 2017-11-07 14:39:58 · 224 阅读 · 0 评论 -
C++ 格式读取文件中的参数
C++中格式读取文件中的参数参数文件parameters.txt大概是这样的形式 #Parameters #sampling rate of frames(reference value:2-10) samplingRate 2 #mode of feature extraction videoSampleFeatureMode 13 videoSearchingFeatureMode原创 2017-09-08 16:12:56 · 5583 阅读 · 1 评论 -
【转】C++ 常用的STL查找函数方法
转自博客常用的STL查找算法《effective STL》中有句忠告,尽量用算法替代手写循环;查找少不了循环遍历,在这里总结下常用的STL查找算法;查找有三种,即点线面: 点就是查找目标为单个元素; 线就是查找目标为区间; 面就是查找目标为集合;针对每个类别的查找,默认的比较函数是相等,为了满足更丰富的需求,算法也都提供了自定义比较函数的版本;1. 单个元素查找find() 比较条件为相转载 2017-09-08 18:24:54 · 2321 阅读 · 0 评论 -
C++ std::string 不可初始化为NULL及基本用法
偶然看到一个问题,顺便总结一下std::stringC++ basic_string::_S_construct null not validstackoverflow例子 std::string 字符串不可以初始化为NULL,虽然能通过编译,但是会出现运行错误。 std::string 使用以下两种初始化为空的方式:std::string s;//执行默认构造函数std::string s原创 2017-09-12 10:17:31 · 38530 阅读 · 0 评论 -
C++ sstream 从文件中读取参数
头文件#include <sstream>从一个TXT中逐行读取参数一个简单的例子 txt文件: #’#’is comment #Parameter SAMPLE_VIDEO_PATH ../../../测试视频/ # SOURCE_VIDEO_PATH ../../../FFOutput/ # INDEX_NAME test_video_duplicate代码如下:static原创 2017-09-22 10:44:34 · 1248 阅读 · 0 评论 -
C++学习小记
纯虚函数纯虚函数是在声明虚函数时被“初始化”为0的函数。声明纯虚函数的一般形式是 virtual 函数类型 函数名 (参数表列) =0; 注意: ①纯虚函数没有函数体;②最后面的“=0”并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”; ③这是一个声明语句,最后应有分号。 纯虚函数只有函数的名字而不具备函数的功能,不能被调用。它只是通知编译系统: “在这里声明一个虚函数,留待原创 2017-07-14 17:21:59 · 468 阅读 · 0 评论 -
【转】C++动态绑定,静态绑定,虚函数
动态类型 是指由一个左值表达式表示的左值所引用的最终派生对象的类型。例:如果一个静态类型为“类 B ”的指针p 指向一个继承于 B的类 D 的对象,则表达式 *p 的动态类型为“D”。引用按照相似规则处理。一般地讲,基类的指针和基类引用有可能为动态类型,就是说在运行之前不能够确定其真实类型。通常我们说,“基类指针指向的对象的实际/真正类型”或“基类引用所引用的对象的实际/真正类型”,就是它们的动态转载 2017-11-07 14:17:19 · 394 阅读 · 0 评论 -
Effective C++ 第一章 理解&总结
1.视C++为一个语言联邦C++有四个次语言组,按照高效编程守则,应选择的参数传递方式 1. C. pass-by-value 2. Object-Oriented C ++.pass-by-reference-to-const(因为有用户自己定义的构造函数和析构函数) 3. Template C++.pass-by-reference-to-const(泛型编程甚至不知道所处理的对象的类型)原创 2017-11-07 14:38:40 · 252 阅读 · 0 评论 -
Effective C++ 第二章 理解&总结
5.原创 2017-11-07 14:39:13 · 202 阅读 · 0 评论 -
基础小记
补习算法基础,学习邓肯的球风,扎实的大基本功~比较大的数组声明在main函数之外做一件事之前检查是否可以做,而不是做完之后不行再回退前++和后++: i++ 与 ++i 的主要区别有两个: 1、 i++ 返回原来的值,++i 返回加1后的值。 2、 i++ 不能作为左值,而++i 可以。 左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值原创 2017-08-30 09:56:27 · 242 阅读 · 0 评论