
C/C++编程
文章平均质量分 79
该模块用于记录自己对容易弄混或者不熟悉的模块的加强,给自己平时参阅使用。
非晚非晚
一往无前,不急不躁,生命不熄,折腾不止!
展开
-
c++中map/unordered_map的不同遍历方式以及结构化绑定
方式一:值传递遍历方式 二:引用传递遍历方式 三:使用迭代器遍历方式 四:结构化绑定(c++17特性)结构化绑定示例(1)元组tuple结构化绑定(2)结构体结构化绑定(3)数组结构化绑定(4)普通变量结构化绑定原创 2023-03-01 14:58:44 · 2380 阅读 · 0 评论 -
介绍几种使用C/C++语言判断一个文件是否存在的方法
1. 方法一:C语言之access2. 方法二:C++语言之access3. 方法三:C++方法之ifstream4. 方法四:fopen方法5. 方法五:sys中的stat函数方法原创 2022-03-08 19:42:02 · 43566 阅读 · 5 评论 -
‘chrono_literals’ is not a namespace-name(c++的版本问题)
这是c++的版本问题,需要使用C++14版本原创 2022-01-20 16:14:54 · 3997 阅读 · 0 评论 -
问题:vector的reserve并不会改变size的大小
今天尝试使用reserve给vector预留空间,然后使用数组的形式访问它,发现size为0,于是重新复习了一下reserve和resize的用法。原创 2022-03-02 16:17:45 · 1131 阅读 · 0 评论 -
constexpr介绍以及与const的区别
常量表达式可以极大提高程序的执行效率,因为常量表达式只需要在编译阶段计算一次,节省了每次程序运行时都需要计算一次的时间。c++11中提供了constexpr关键字来指定常量表达式。C++ 11 标准中,constexpr 可用于修饰普通变量、函数(包括模板函数)以及类的构造函数。原创 2022-01-26 14:02:25 · 4084 阅读 · 1 评论 -
C/C++标准库之numeric
<numeric>是C++标准程序库中的一个头文件,定义了C++ STL标准中的基础性的数值算法,函数并不多,一共5个,偶有接触,这里一并介绍一下,免得每次上网翻阅查找。这五个函数分别为:accumulate;adjacent_difference;inner_product;partial_sum;iota。原创 2022-01-17 21:51:15 · 5731 阅读 · 2 评论 -
循环(环形)缓冲区之Boost::circular_buffer
虽然STL中有queue和deque,但是他们是无限扩展大小的,如果想限定一个定量缓冲,就必须不停的pop操作,而且queue没有随机访问的操作。如果想要维护一个定长缓冲区,我们可以考虑使用Boost的circular_buffer,它既可以满足定长的需求,也支持随机存取,而且头部和尾部都可以插入。原创 2021-09-23 23:04:00 · 2466 阅读 · 0 评论 -
大端模式与小端模式的理解以及判断方法
在计算机中,我们知道数据是按照字节存储的,如果数据都是单字节存储,就不涉及存储顺序的问题。但是,大多数情况下,数据不是按照单字节的方式存储的,例如会有类似于int,double等数据类型,这就涉及到存储顺序的问题了,于是也就出现了两种存储方:大端模式(big endian)和小端模式(little endian)。原创 2021-08-08 22:08:09 · 12681 阅读 · 1 评论 -
C++中的pair和tuple的基本用法总结
pair是将2个数据组合成一组数据,类似于map中的key和value放在一起保存,它是由结构体实现,元素分别为first和second。tuple元组在C++11开始使用,它是一个固定大小的不同类型值的集合。std::pair只能是2个成员,tuple中可以使用3个及以上的数据。原创 2021-06-06 11:55:56 · 5654 阅读 · 0 评论 -
都什么年代了,还不会C++的Lambda函数?
一直标榜自己是一名使用C++作为开发语言的攻城狮,然而C++11已经出来这么久了,即没有使用,也没明白Lambda函数,惭愧不已!其它语言很早就有Lambda函数了,然而C++11才开始有此功能。今天就抽空把它拿下吧!原创 2021-05-11 17:30:09 · 321 阅读 · 2 评论 -
C++头文件< algorithm> 中的函数功能详解
C++中的算法都是通过函数模板实现,所以STL的数据结构,甚至是自己定义的数据结构基本都可以调用内置算法。掌握C++内置算法,可以帮助我们节省大量的时间!原创 2021-04-25 17:39:57 · 2326 阅读 · 7 评论 -
一文详解C++多线程
传统的C++(C++11之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的,或者windows下的 。C++11提供了语言层面上的多线程,包含在头文件中。它解决了跨平台的问题,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C++11 新标准中引入了5个头文件来支持多线程编程,如下图所示:原创 2021-04-25 09:09:43 · 86969 阅读 · 21 评论 -
C++中的typeInfo用法总结
typeid是C++的关键字之一,结合typeinfo可以很好的帮助我们查看数据类型,尤其在继承和模板盛行的C++中。原创 2021-04-23 21:58:15 · 11584 阅读 · 0 评论 -
C/C++中的ctime用法总结
头文件time.h为C语言当中的头文件,被C++继承过来。可以结合chrono进行使用。原创 2021-04-16 18:03:24 · 29349 阅读 · 5 评论 -
【C/C++】STL详解
长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出“可重复运用的东西”的方法,从函数(functions),类别(classes),函数库(function libraries),类别库(class libraries)、各种组件,从模块化设计,到面向对象(object oriented ),为的就是复用性的提升。复用性必须建立在某种标准之上。但是在许多环境下,就连软件开发最基本的数据结构(data structures) 和算法(algorithm)都未能有一套标准。大量程转载 2021-04-12 16:46:03 · 715 阅读 · 0 评论 -
【笔记】C/C++编程中的一些常用函数、功能和容易混淆的概念
记录一些C/C++中常用但是容易忘记的函数;记录C/C++中容易混淆的概念。这里作为C/C++日常开发笔记所用。原创 2021-03-17 13:59:45 · 606 阅读 · 1 评论 -
C++中各种数据类型相互转换(string、char*、int、double、2进制、8进制、16进制、stringstream、QString等)
使用C++作为程序开发时,经常遇到数据类型转换的情况。下面介绍string、char*、int、double、2进制、8进制、16进制、stringstream、QString等的数据类型互相转换。原创 2021-03-17 11:16:56 · 2028 阅读 · 0 评论 -
随机函数rand()、srand()与random的用法
rand()随机函数rand()的头文件为<cstdlib> (stdlib.h)。rand()不需要参数,它会返回一个从0到最大随机数(RAND_MAX)的任意整数。0到99:int num = rand() % 100;1-100,则是这样:int num = rand() % 100 + 1;a到b之间的随机整数:rand() % (b-a+1)+ a ;若要产生0~1之间的小数,则可以先取得0~10的整数,然后均除以10即可得到“随机到十分位”的10个随机小数。若要得到“随原创 2021-02-02 17:34:49 · 4310 阅读 · 1 评论 -
重学C++笔记之(十六)探讨C++11新标准
1. 复习前面介绍过的C++11功能1.1 新类型1.2 统一的初始化1.3 声明1.3.1 auto1.3.2 decltype1.3.3 返回类型后置1.3.4 using =1.3.4 nullptr1.4 智能指针1.5 作用域内枚举1.6 对类的修改1.6.1 显式转换运算符1.6.2 类内成员初始化1.7 模板和STL方面的修改1.7.1 基于范围的for循环1.7.2 新的STL容器1.7.3 新的STL方法1.7.4 valarray升级原创 2021-02-01 17:34:02 · 531 阅读 · 0 评论 -
重学C++笔记之(十五)输入、输出和文件
1. C++输入和输出概述1.1 流和缓冲区1.2 流、缓冲区和iostream文件1.3 重定向2. 使用cout进行输出2.1 重载的<<运算符2.2 其他ostream方法2.3 刷新缓冲区2.4 用cout格式化2.4.1 修改显示时的计数系统2.4.2 调整字段宽度2.4.3 填充字符2.4.4 设置浮点数的显示精度2.4.5打印末尾的0和小数点2.4.6 标准控制符2.4.7头文件iomanip3. 使用cin进行输入3.1 cin>>如何检查输入3.2 流状态4文件的输入和输出5.内核格式化原创 2021-01-27 19:05:17 · 690 阅读 · 0 评论 -
重学C++笔记之(十四)string类和标准模板库
1. string类1.1 构造字符串1.2 string类输入1.3 使用字符串1.4 string提供的其他功能2. 智能指针模板类2.1 使用智能指针2.2 智能指针的注意事项2.3 nique_ptr为何优于auto_ptr2.4 选择智能指针3. 标准模板库3.1 模板类vector3.2 对vector的操作(1) push_back()和pop_back()(2) erase()(3) insert()(4) for_each()(5) Random_sh原创 2021-01-25 18:45:35 · 481 阅读 · 0 评论 -
重学C++笔记之(十三)友元、异常和其他
1. 友元1.1 友元类1.2 友元成员函数1.3 其他友元关系1.4 共同的友元2. 嵌套类3. 异常3.1 调用abort()3.2 返回错误码3.3 异常机制3.4 将对象用作异常类型3.5 exception类(1) stdexcept异常类(2) bad_alloc异常和new(3)空指针和new4. RTTI4.1 RTTI的用途4.2 RTTI的工作原理(1) dynamic_cast运算符(2) typeid运算符和type_info类5. 类型转换运原创 2021-01-24 17:49:57 · 762 阅读 · 0 评论 -
重学C++之(十)类和动态内存分配
1. 动态内存和类1.1 特殊成员函数(1) 默认构造函数(2)复制构造函数(3)何时调用复制构造函数(4)默认的复制构造函数的功能(5)定义一个显式复制构造函数以解决问题(深复制)(6)赋值运算符2. 改进后的新String类3. 在构造函数中使用new时应注意的事项4. 有关返回对象的说明4.1 返回指向const对象的引用4.2 返回指向非const对象的引用4.3 返回对象4.4 返回const对象5. 使用指向对象的指针5.1 再谈new与delete5.2 指针原创 2021-01-14 12:42:21 · 354 阅读 · 0 评论 -
重学C++笔记之(七)内存模型和名称空间
1. 单独编译2 存储持续性、作用域和链接性2.1 作用域和链接2.2 自动存储持续性2.3 静态持续变量2.4 静态持续性、外部链接性2.5 静态持续性、内部链接性2.6 静态持续性、无链接性2.7 说明符和限定符2.7.1 mutable2.7.2 再谈const2.8 函数和链接性2.9 语言链接性2.10 存储方案和动态分配2.10.1 使用new运算符初始化2.10.2 new失败时2.10.3 new:运算符、函数和替换函数2.10.4 定位new运算符3.原创 2021-01-11 12:50:55 · 294 阅读 · 0 评论 -
重学C++笔记之(六)函数探幽
1. 内联函数1.1 基础知识1.2 内联函数与宏2. 引用变量2.1 引用变量2.2 将引用用作函数参数2.3 将引用用于结构2.4 将引用用于类对象2.5 对象、继承和引用2.6 何时使用引用参数3. 默认参数4. 函数重载(多态)4.1 概念4.2 一个示例5. 函数模板5.1 定义5.2 重载模板5.3 显示具体化和显示实例化5.4 decltype结合auto的使用原创 2021-01-10 16:16:46 · 348 阅读 · 0 评论 -
重学C++笔记之(五)函数的使用
1. 函数的基础知识2. 函数和数组2.1 数组属于值传递(指针)2.2 使用const来保护数组2.3 指针和const(1)第一种情况(2)第二种情况3. 函数和二维数组4. 函数和C-风格字符串5. 函数和结构5.1 值传递5.2 传递结构的地址6. 函数和string对象7. 函数和array对象8. 函数递归8.1 一个递归8.2 包含多个递归调用9. 函数指针9.1 函数指针的基础知识9.2 使用举例9.3 使用typedef进行简化原创 2021-01-09 15:33:49 · 429 阅读 · 1 评论 -
重学C++笔记之(四)循环和分支语句
1. 循环1.1 for循环1.2逗号运算符1.3 关系运算符1.4 C-风格的字符串比较1.5 string类字符串比较2. while和do while循环2.1 typedef和define3. 基于范围的for循环(C++11)4. 循环和文本输入4.1 原始cin输入4.2 可以读取空格的cin.get(char)5. 逻辑运算符6. 字符函数库cctype7. switch语句原创 2021-01-08 13:08:39 · 341 阅读 · 0 评论 -
重学C++笔记之(三)复合类型
1. 数组1.1 定义1.2 数组的初始化1.3 C++11数组初始化方法2. 字符串(C-风格)2.1 定义2.2 拼接字符串常量2.3 cin一次读入一个单词2.4 每次读取一行字符串输入3. string类字符串3.1 C++11z字符串初始化3.2 赋值、拼接和附加3.3其它形式的字符串字面值4. 结构简介4.1 定义和使用4.2 初始化4.3 结构中的位字段5. 共用体6. 枚举7. 指针和自由存储空间7.1 声明和初始化指针7.2 指针和数字7.3 使原创 2021-01-07 06:56:00 · 406 阅读 · 1 评论 -
重学C++笔记之(二)处理数据
1. 基本数据类型2. 整数字面类型3. char类型和wchar_t3.1 char3.2 转义字符3.3 signed char和unsigned char3.4 通用字符名3.5 wcha_t4. bool类型5. define与const限定符6. 初始化7. 浮点类型7.1 两种表示方式7.2 浮点数的优缺点8. C++算数运算符8.1 类型转换8.2 C++11中的auto声明原创 2021-01-06 17:02:09 · 426 阅读 · 0 评论 -
重学C++笔记之总览目录
重学C++笔记总览目录:(一) C++基础介绍(二) 处理数据(三)复合类型(四)循环和分支语句(五)函数的使用(六)函数探幽(七)内存模型和名称空间(八)对象和类(九)使用类(十)类和动态内存分配(十一)类继承(十二)C++中的代码重用(十三)友元、异常和其他(十四)string类和标准模板库(十五)输入、输出和文件(十六)探讨C++新标准原创 2021-01-06 12:07:09 · 504 阅读 · 0 评论 -
重学C++笔记之(一)基础介绍
C++融合了3种不同的编程方式:C语言代表的过程性(procedural)语言C++在C语言基础上添加的类代表的面向对象语言(OOP,Object Oriented Programming)C++模板支持的泛型编程(Generic Programming)原创 2021-01-06 11:59:15 · 387 阅读 · 0 评论 -
重学C++笔记之(八)对象和类
1. 抽象和类1.1 C++中的类(1)访问控制(2)控制对成员的访问:公有还是私有(3)类和结构1.2 实现类成员函数(1)成员函数的定义(2)内联方法2. 类的构造函数和析构函数2.1 声明和定义构造函数2.2 使用构造函数2.3 默认构造函数2.4 析构函数2.5 const成员函数3. this指针4. 对象数组5. 类作用域5.1 作用域为类的常量5.2 作用域内枚举(C++)6. 抽象数据类型原创 2020-12-12 12:57:45 · 331 阅读 · 0 评论 -
理解C++:模板
1.函数模板:2.类模板原创 2020-12-12 12:56:15 · 167 阅读 · 0 评论 -
重学C++笔记之(十一)类继承
1. 一个简单基类1.1 派生一个类1.2 使用派生类1.3 派生类和基类之间的特殊关系2. 继承:is-a关系3. 多态公有继承4. 静态联编和动态联编4.1 指针和引用类型的兼容性4.2 虚成员函数和动态联编(1) 为什么有两种类型联编(2)虚函数的工作原理4.3 有关虚函数注意事项5. 访问控制:protected6. 抽象基类7. 继承和动态内存分配7.1 第一种情况:派生类不使用new7.2 第二种情况:派生类使用new原创 2020-12-12 12:49:31 · 396 阅读 · 0 评论 -
chrono介绍
chrono是在std下,属于C++11的标准,它的头文件为#include<chrono>,是一个处理时间的元素。主要包括三个概念:Durantions:时间段Time points:时间点Clocks:包括system_clock(系统时钟),steady_clock(稳定时钟);high_resolution_clock(高精度时钟);协议,转载请附上原文出处链接及本声明。原创 2020-12-12 12:39:23 · 5562 阅读 · 3 评论 -
重学C++笔记之(九)使用类
1. 运算符重载1.1 重载加法举例1.2 重载限制1.3 操作单个对象2. 友元函数2.1 完善操作单个对象2.2 常用的友元:重载<<运算符(1)输出对象(2)与常规cout结合使用2.3 重载运算符:作为成员函数还是非成员函数3. 类的自动转换和强制类型转换3.1 对象自动隐式转换3.2 转换函数3.3 转换函数和友元函数原创 2020-12-12 11:40:31 · 282 阅读 · 0 评论 -
C/C++学习工具
C/C++学习工具整理原创 2020-12-12 09:45:20 · 361 阅读 · 0 评论 -
理解C++:C++ 回调函数
介绍回调函数的概念以及使用原创 2020-12-11 23:02:16 · 218 阅读 · 0 评论