随笔分类 - C++
C++中四种强制类型转换
摘要:在C++中,强制类型转换是用于将一种数据类型的值转换为另一种数据类型的操作,可以通过四种不同的方式进行实现。 静态转换(static_cast):可用于转换具有父子关系的类指针或引用之间的类型,也可用于将同类型的非常量变量或指针转换为其他类型。 double d = 10.5; int i = st
volatile关键字
摘要:在C和C++中,volatile关键字用于告诉编译器某些特定的变量可能会在无意中被修改,从而防止编译器优化掉相关代码。当我们使用声明为volatile类型的变量时,表示变量的值是随时可能发生变化的,并且需要特别小心地处理。 主要有以下几种情况需要使用volatile关键字: 位域 当使用volati
static
摘要:static是C语言中的一个关键字,它可以用于多种情况,下面分别介绍: 用于局部变量声明 在函数内部使用static修饰一个局部变量时,该变量就被称为"静态局部变量"。与普通的局部变量不同,静态局部变量的生命周期只到程序结束才会被销毁,而且它的作用域仅限于定义该变量的函数内部。 用于全局变量声明 在
gdb的使用
摘要:gdb是一款开源、跨平台的调试器,可以用来调试程序并查找错误。在Linux系统中,gdb可以通过终端实现,下面介绍一些常用的命令: 启动gdb调试器:在命令行输入“gdb [可执行文件名]”即可启动gdb。 设置断点:使用“break [line number]”命令设置断点,例如“break ma
std::minmax_element的简单用法
摘要:获取一个数组中的最大值和最小值,通过匿名函数声明自定义比较策略。 #include <iostream> #include <vector> #include <algorithm> #include <string> #define BUFSIZE 6 using namespace std; t
c++运行时间记录
摘要:chrono::steady_clock::time_point t1 = chrono::steady_clock::now(); ...... chrono::steady_clock::time_point t2 = chrono::steady_clock::now(); chrono::d
Ubuntu 和 mingw 关于mkdir 不兼容的问题
摘要:参考:https://github.com/kyz/libmspack/issues/1 添加如下代码: #if defined(__WIN32__) || defined(__MINGW32__) # define mkdir(a, b) mkdir(a) /* mkdir command on
string转化为char * 和 char数组转化为string
摘要:string转化为char * #include <string> std::string path = "../picture" char * pathchar = path.c_str(); char数组转化为string char a[5] = {"abc"}; string b(a);