C++ – 在Windows/Linux上创建单级目录以及多级目录的跨平台方法
1 C++创建目录 本文将对使用C++在Windows和Linux系统上创建单级目录与多级目录的普通方法进行总结,本文将不会使用C++14新增的std::filesystem的标准库方法。 1.1 在Windows/Linux上创建单级目录 1.1.1 在Windows上创建单级目录 在Window…
- C++
- 2022-05-10
C++ – std::string替换字符串中所有指定的子字符串
1 std::string替换字符串中所有指定的子字符串 std::string并没有提供类似repalceALL之类的方法,我们只能使用std::string::replace方法逐个替换子字符串。 封装的方法如下: std::string ReepalceAllString(std::strin…
- C++
- 2022-05-10
C++ – Windows/Linux生成uuid(通用唯一识别码)
1 Windows/Linux生成uuid 1.1 uuid UUID含义是通用唯一识别码(Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Dis…
- C++
- 2022-04-28
C++ – linux编译C++代码出现error: use of deleted function std::atomic::atomic(const std::atomic&)
1 linux编译C++代码出现error: use of deleted function std::atomic::atomic(const std::atomic&) 今天在Ubuntu,GCC版本为7.5编译类似以下C++代码时出现了error: use of deleted fun…
- C++
- 2022-04-20
GCC/G++中编译优化选项-O -O0 -O1 -O2 -O3 -Os -Ofast -Og -Oz各自的区别和作用
1 GCC/G++中的编译优化选项 在gcc/g++编译程序时,不同优化编译选项,如-O1,-O2,-O3等会产生不同的程序大小以及程序运行速度。本文将对GCC/G++中的不同编译选项进行简要的介绍。 1.1 -O0 如果GCC不指定编译优化选项,那么会设置为-O0。 -O0主要可以减少代码编译时间…
- C++
- 2022-04-18
CMake – 设置Debug或者Release编译模式
1 CMake设置编译模式Debug或者Release 使用cmake需要指定编译模式时一般有两种方式,一种是直接在CMakeLists.txt中设置,另一种则是在cmake命令行中设置。 1.1 在CMakeLists.txt直接设置 Debug模式 SET(CMAKE_BUILD_TYPE "D…
- C++
- 2022-04-15
C++ – 常用的C++命令行参数解析第三方库
最近在Linux上开发C++程序时,通过int main(int argc,char[] argv)通过命令行参数的方式向程序传参时真的很难用,这个时候就非常怀念python的argparse命令行参数解析包,那C++有没有类似的命令行参数解析库呢?大致了解下,发现真的有。所以本文将例举下C++中简…
- C++
- 2022-04-14
C++ – Windows和Linux系统下获取当前可执行程序的绝对路径
1 C++获取Windows和Linux系统当前可执行程序的绝对路径 在程序中获取当前程序在系统中的绝对路径是频繁使用的功能,本文总结了如何在Windows和Linux系统获取当前可执行程序绝对路径的方式,并封装成可跨平台编译的工具类PathUtils。 1.1 在Windows系统上获取当前可执行…
- C++
- 2022-03-22
C++ – 字节数组byte[]或者unsigned char[]与long double的相互转换
设定long double型的字节长度为12。 1 long double转字节数组 long double转字节数组byte[]或者unsigned char[] void LongDoubleTobytes(long double data, unsigned char bytes[]) { s…
- C++
- 2022-03-17
C++ – 字节数组byte[]或者unsigned char[]与bool的相互转换
设定bool型字节长度为1。 1 bool转字节数组 bool型转字节数组byte[]或者unsigned char[] void BoolTobytes(bool data, unsigned char bytes[]) { if (data) { bytes[0] = (unsigned cha…
- C++
- 2022-03-16
C++ – 字节数组byte[]或者unsigned char[]与float的相互转换
设定float型字节长度为4字节。 1 float转字节数组 float型转字节数组byte[]或者unsigned char[] void FloatTobytes(float data, unsigned char bytes[]) { size_t length = sizeof(float)…
- C++
- 2022-03-15
C++ – 字节数组byte[]或者unsigned char[]与double的相互转换
设定double型字节长度为8。 1 double转字节数组 double型转字节数组byte[]或者unsigned char[] void DoubleTobytes(double data, unsigned char bytes[]) { size_t length = sizeof(dou…
- C++
- 2022-03-14