![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++ ——一文读懂
文章平均质量分 77
C++ ——一文读懂
令狐少侠、
**
展开
-
内存池autobuffer
【代码】内存池autobuffer。原创 2022-09-09 22:05:38 · 293 阅读 · 0 评论 -
一文读懂——Protobuf
protobuf原创 2022-06-14 10:57:04 · 38931 阅读 · 0 评论 -
C++ ——一文读懂:noexcept、override、final
noexcept在C++11中,我们可以通过noexcept来指定某个函数不会抛出异常。比如下面就是std::initializer_list的默认构造函数,其中使用了noexcept。constexpr initializer_list() noexcept : _M_array(0), _M_len(0) { }该关键字告诉编译器,函数中不会发生异常,这有利于编译器对程序做更多的优化。如果在运行时,noexecpt函数向外抛出了异常(如果函数内部捕捉了异常并完成处理,这种情况不算原创 2022-04-28 13:58:01 · 1170 阅读 · 0 评论 -
C++ ——一文读懂:mmap共享内存
头文件: #include <stdarg.h> 函数声明: int _vsnprintf(char *buffer, size_t max_count, const char *format, va_list vArgList); 参数说明: 1. char *buffer [out],把生成的格式化的字符串存放在这里. 2. size_t max_count [in], buffer可接受的最大字节数,防止产生数组越界. 3. const char *format原创 2020-06-06 23:11:34 · 1307 阅读 · 1 评论 -
C++ ——一文读懂:实现split函数
getline实现实现单分割符的split功能#include <iostream>#include <string>#include <sstream>using namespace std; int main() { stringstream input("45,65,45231,4646,4564"); string str; while (getline(input, str, ',')) { cout <原创 2022-02-25 12:44:05 · 1474 阅读 · 0 评论 -
C++ ——一文读懂:重载对象与类型转换
当运算符被用于类类型的对象时,C++允许指定新的含义,能自定义类类型的转换规则。和内置类型的转换一样,类类型转换隐式地将一种类型的对象转换成另一种所需的对象当运算符作用于类类型的对象,可以通过运算符重载重新定义该运算符的含义14.1 基本概念重载运算符是具有特殊名字的函数:其名字由关键字operator和要定义的运算符号组成除了重载的函数调用运算符operator()外,其他重载运算符...原创 2020-05-05 18:06:03 · 624 阅读 · 1 评论 -
C++ ——一文读懂:动态内存
文章目录12.1 动态内存与智能指针12.1 shared_ptr类12.2 内存直接管理12.3 shared_ptr和new结合使用12.4 智能指针和异常12.5 unique_ptr12.6 weak_ptr12.2 动态数组12.2.1 new和数组12.2.2 allocator类12.3 使用标准库:文本查询12.3.1 文本查询程序设计12.3.2 文本查询程序类的定义12.1 ...原创 2020-05-04 23:57:00 · 670 阅读 · 1 评论 -
C++ ——一文读懂:关联容器
标准库提供8个关联容器:类型map和multimap定义在头文件map中类型set和multiset定义在头文件set中;无序容器unordered_map和unordered_multimap定义在头文件unordered_map无序容器unordered_set和unordered_multiset定义在头文件unordered_set中底层结构:红黑树RB-tree,按关键字有...原创 2020-05-04 23:46:27 · 485 阅读 · 1 评论 -
C++ ——一文读懂:泛型算法
10.1 概述10.2 初识泛型算法10.3 定制操作10.4 再探迭代器10.5 泛型数据结构10.6 特定容器算法原创 2020-05-04 17:52:22 · 295 阅读 · 0 评论 -
C++ ——一文读懂:顺序容器
9.1 顺序容器概述9.2 容器库概览9.3 顺序容器操作9.4 vector对象如何增长9.5 额外的string操作9.6 容器适配器原创 2020-05-04 02:18:20 · 289 阅读 · 0 评论 -
C++ ——一文读懂:IO库
三个独立头文件iostream定义了用于读写流的基本类型fstream定义了读写命名文件的类型sstream定义了读写内存string对象的类型原创 2020-05-04 00:22:44 · 545 阅读 · 1 评论 -
C++ ——一文读懂:类
文章目录6.1 类的定义6.1.1 定义类6.1.2 成员的访问控制6.1.3 类的数据成员6.1.4 类的成员函数内联成员函数6.2 对象的定义和使用6.2.1 对象的定义6.2.2 对象的动态建立与释放6.2.3 对象成员的访问6.3 构造函数6.3.1 定义构造函数6.3.2 构造函数初始化列表6.4 默认构造函数与复制构造函数6.4.1 默认构造函数定义默认构造函数隐式类类型转换6.4.2...原创 2020-05-03 20:45:26 · 866 阅读 · 1 评论 -
C++ ——一文读懂:make_heap(), pop_heap(), push_heap()用法
make_heap()是生成一个堆,大顶堆或小顶堆make_heap(_RAIter,_RAIter) //默认生成大顶堆//_Compare有两种参数,一种是greater(生成小顶堆),一种是less(生成大顶堆)make_heap(_RAIter,_RAIter,_Compare) push_heap()是向堆中插入一个元素,并且使堆的规则依然成立//默认为大顶堆push_he...原创 2019-12-19 16:50:03 · 2675 阅读 · 0 评论 -
C++ ——一文读懂:string
C++处理字符串的方式有两种来自c语言,常称为C-风格字符串可以将字符串存储在char数组中,C-风格字符串特殊性质:以空字符(\0)结尾,用来标记字符串的结尾基于string类型库的方法strin类使用简单, 提供了将字符串作为一种数据类型的表示方法为了在我们的程序中使用string类型,我们必须包含头文件 < string>#include <stri...原创 2019-11-18 14:41:28 · 548 阅读 · 1 评论 -
C++ 学习——char * ,char a[ ],char ** ,char *a[] 的区别
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。1.数组的本质数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。。2.指针。指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的...原创 2019-11-17 15:43:39 · 13310 阅读 · 6 评论 -
C++ ——一文读懂:struct和typedef struct
C中定义一个结构体类型要用typedef:typedef struct Student { int a; }Stu;于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)也可以不写Studenttypedef struct { int a; }Stu;C++定义...原创 2019-09-25 17:03:18 · 919 阅读 · 0 评论 -
C++ ——一文读懂:关键字override
override在C++中它是覆盖了一个方法并且对其重写,从而达到不同的作用。在我们C++编程过程中,最熟悉的就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。还有一个典型应用就是在继承中也可能会在子类覆盖父类的方法。1.公有继承包含两部分:一是“接口”(interface),二是 “实现” (implementation)。class Sh...原创 2019-07-01 19:47:26 · 13849 阅读 · 1 评论 -
C++ ——一文读懂:unorder_map
map:优点:有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作。红黑树,内部实现一个红黑书使得map的很多操作在lgn的时间复杂度下就可以实现,因此效率非常的高。缺点:空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间。适用处:对于那些有顺...原创 2019-06-28 11:22:10 · 1616 阅读 · 0 评论 -
C++ ——一文读懂:强制类型转换操作符 static_cast
static_cast是一个强制类型转换操作符。强制类型转换,也称为显式转换,C++中强制类型转换操作符有四个static_castdynamic_castconst_castreinterpert_cast。介绍static_cast操作符用于类层次结构中,基类和子类之间指针和引用的转换;当进行上行转换,也就是把子类的指针或引用转换成父类表示,这种转换是安全的;当进行下行转...原创 2019-06-27 00:04:07 · 1103 阅读 · 0 评论 -
C++ ——一文读懂:STL库vector
参考:https://www.runoob.com/w3cnote/cpp-vector-container-analysis.html一、什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。二、容器特性顺序序列顺序容...原创 2019-09-02 22:17:15 · 347 阅读 · 0 评论 -
C++ ——一文读懂:STL库set
set集合容器:实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。平衡二叉...原创 2019-08-30 09:51:16 · 1578 阅读 · 0 评论