
C++
文章平均质量分 95
学习C++
Coca1cole
~
展开
-
C++中的类型转换
本章主要学习C++的四种类型转换。原创 2022-11-05 18:30:03 · 613 阅读 · 19 评论 -
C++特殊类设计
本章我们主要讲解学习特殊类的设计方式。原创 2022-10-09 20:12:24 · 473 阅读 · 21 评论 -
C++智能指针
本章主要讲解学习C++中智能指针的概念及使用原创 2022-07-08 09:37:03 · 565 阅读 · 35 评论 -
C++异常
本章主要学习C++中的异常这一方面的知识原创 2022-07-05 09:31:51 · 368 阅读 · 33 评论 -
C++11-lambda表达式/包装器/线程库
C++11篇三零、前言一、lambda表达式1、lambda的引入2、lambda表达式语法3、捕获列表说明4、函数对象与lambda表达式二、包装器1、function包装器2、bind三、线程库1、线程的概念及使用2、线程函数参数3、原子性操作库(atomic)4、lock_guard与unique_lock1、mutex的种类1、lock_guard3、unique_lock5、两个线程交替打印奇数偶数零、前言本章是讲解学习C++11语法新特性的第三篇文章,主要学习lambda表达式,包装器,线原创 2022-05-18 12:07:42 · 1562 阅读 · 63 评论 -
C++11-右值引用/新的类功能/可变参数列表
C++11-右值引用/新的类功能/可变参数列表零、前言一、右值引用1、左值和右值2、左值引用和右值引用3、右值引用4、移动语义5、右值引用引用左值6、完美转发7、右值引用作用二、新的类功能1、默认成员函数2、移动构造和移动赋值三、可变参数列表1、参数包的展开2、STL中的emplace零、前言本章继续跟着上章讲解C++11的新语法特性,主要包括右值引用一、右值引用引入及概念:C++98中提出了引用的概念,引用即别名,引用变量与其引用实体公共同一块内存空间,而引用的底层是通过指针来实现原创 2022-05-13 09:55:38 · 809 阅读 · 53 评论 -
C++11-列表初始化/变量类型推导/范围for/final&override/默认成员函数控制
C++11零、前言一、C++11简介二、列表初始化1、内置类型列表初始化2、自定义类型列表初始化三、变量类型推导1、auto类型推导2、decltype类型推导四、范围for循环五、final和override1、final2、override六、默认成员函数控制零、前言本章将开始学习C++11的新语法特性,主要是一些比较常用的语法一、C++11简介发展历程:在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字已经取代了C++98称为C++11之原创 2022-05-06 10:53:56 · 877 阅读 · 51 评论 -
C++哈希应用-位图/布隆过滤器/海量数据处理
C++位图/布隆过滤器/海量数据处理零、前言一、位图1、位图概念2、位图接口的介绍以及实现3、位图的应用二、布隆过滤器1、布隆过滤器概念和介绍2、布隆过滤器的操作及实现3、布隆过滤器的分析三、海量数据处理零、前言本章主要讲解C++中对哈希的应用有关方面的内容,位图,布隆,海量数据处理一、位图1、位图概念位图概念:位图其实就是哈希的变形,同样通过映射来处理数据,只不过位图本身并不存储数据,而是存储标记通过一个比特位来标记这个数据是否存在,1代表存在,0代表不存在位图通常情原创 2022-04-14 10:39:36 · 1189 阅读 · 51 评论 -
C++哈希-使用/模拟/封装
C++哈希-使用/模拟/封装零、前言一、unordered系列关联式容器1、unordered_map介绍及使用2、unordered_set的介绍及使用3、性能比较二、哈希表/哈希桶1、哈希介绍及概念2、哈希冲突及解决3、闭散列/哈希表的实现4、开散列/哈希桶的实现三、哈希封装实现unordered_map/unordered_set1、哈希桶的改装2、unordered_map的上层封装3、unordered_set的上层封装零、前言本章主要讲解unordered系列关联式容器及其底层结构和模拟实原创 2022-04-07 09:24:57 · 1418 阅读 · 75 评论 -
C++红黑树模拟实现map和set
C++红黑树模拟实现map和set零、前言一、红黑树及其节点的设计1、树节点的设计2、红黑树的设计3、取值仿函数的使用二、红黑树的迭代器1、begin()与end()2、operator++()与operator--()3、正反迭代器的实现三、map和set的实现1、红黑树的实现2、map的封装3、set的封装零、前言本章是继红黑树的介绍和实现后,讲解使用红黑树来封装实现map和set一、红黑树及其节点的设计对于底层都是红黑树的map和set来说,他们之间存在的最大的区别就是:对于set是K模原创 2022-04-01 10:00:11 · 4012 阅读 · 81 评论 -
C++红黑树
C++红黑树零、前言一、红黑树的概念及性质二、红黑树结点的定义三、红黑树的插入操作1、变色处理2、单旋+变色3、双旋+变色4、插入实现四、红黑树的验证五、红黑树的删除六、红黑树与**AVL**树的比较零、前言本章继AVL树后继续讲解学习C++中另一个二叉搜索树–红黑树一、红黑树的概念及性质概念:红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长原创 2022-03-26 18:15:01 · 6873 阅读 · 55 评论 -
C++AVL树
AVL树零、前言一、AVL树的概念二、AVL树结点定义三、AVL树的插入四、AVL树的旋转1、左单旋2、右单旋3、左右双旋4、右左双旋5、总结五、AVL树的验证六、AVL树的性能零、前言本章主要讲解map和set的底层结构平衡二叉搜索树的一种-AVL树的特性及其实现一、AVL树的概念引入:map/multimap/set/multiset其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时间复杂度会退原创 2022-03-20 08:46:49 · 2436 阅读 · 76 评论 -
C++map和set的介绍及使用
C++map和set的介绍及使用零、前言一、关联式容器二、键值对三、C++中的set1、set的介绍2、set的使用四、C++中的multiset五、C++中的map1、map的介绍2、map的使用六、C++中的multimap零、前言本章主要讲解C++中的关联式容器map和set的介绍及其使用一、关联式容器容器分类:序列式容器:初阶阶段中学习过STL中的部分容器,如:vector、list、deque等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身原创 2022-02-26 15:17:36 · 3916 阅读 · 49 评论 -
C++二叉搜索树
【C++进阶学习】二叉树搜索树零、前言一、二叉搜索树概念及分析二、二叉搜索树的详解及模拟1、二叉搜索树的结构2、二叉树搜索树的构造和析构3、二叉搜索树的查找4、二叉搜索树的插入5、二叉搜索树的删除三、二叉搜索树的应用零、前言我们都知道二叉树只有附加上一些特性才具有实用的价值,而本章主要讲解二叉树进阶的内容-二叉搜索树一、二叉搜索树概念及分析概念:二叉搜索树(Binary Search Tree)又称二叉排序树,也称作二叉查找树它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子原创 2022-02-06 18:53:02 · 1141 阅读 · 44 评论 -
C++进阶-多态
【C++进阶学习】C++中的多态零、前言一、多态的概念和定义二、虚函数1、概念和定义2、虚函数重写的特例3、C++11 override 和 final4、重载/重写/重定义对比三、抽象类四、多态的原理1、虚函数表2、多态的原理3、动态绑定与静态绑定4、多继承虚函数表五、继承和多态常见的面试问题零、前言C++有五大特性:对象,封装,继承,抽象和多态。而本章则将学习讲解C++中的多态一、多态的概念和定义概念:通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同原创 2022-01-30 17:49:26 · 1902 阅读 · 38 评论 -
C++进阶-继承
【C++进阶学习】C++中的继承零、前言一、继承的概念和定义二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承和友元六、继承和静态成员七、菱形继承和虚拟继承八、继承和组合九、继承相关面试题零、前言从本章开始,我们已经达到了C++的入门水平,开始向进阶进发,而本章则是介绍学习C++的继承一、继承的概念和定义概念:继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生.原创 2022-01-25 17:26:30 · 1152 阅读 · 22 评论 -
C++初阶-IO流
【C++初阶学习】C++的IO流零、前言一、C语言的输入输出二、什么是流三、C++IO流四、C++标准IO流五、C++文件IO流六、stringstream的介绍和使用零、前言本章将学习和掌握C++的IO流的知识以及与C语言IO流做一个对比一、C语言的输入输出概念:C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()scanf():从标准输入设备(键盘)读取数据,并将值存放在变量中printf():将指定的文字/字符串输出到标准输出设备(屏原创 2022-01-18 11:43:48 · 459 阅读 · 40 评论 -
C++初阶-模板进阶
【C++初阶学习】C++模板进阶零、前言一、非模板类型参数二、模板特化1、函数模板特化2、类模板特化1、全特化2、偏特化三、模板分离编译四、模板总结零、前言本章继C++模板初阶后进一步讲解模板的特性和知识一、非模板类型参数分类:模板参数分类类型形参与非类型形参概念:类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称非类型形参:用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用示例:n原创 2022-01-14 18:07:37 · 973 阅读 · 29 评论 -
C++初阶-stack/queue/priority_queue的使用和模拟
【C++初阶学习】stack/queue/priority_queue的使用和模拟零、前言一、stack的介绍和使用1、stack的介绍2、stack的使用二、queue的介绍和使用1、queue的介绍2、queue的使用三、priority_queue的介绍和使用1、priority_queue的介绍2、priority_queue的使用四、容器适配器五、deque的简单介绍六、stack的模拟实现七、queue的模拟实现八、priority_queue的模拟实现零、前言本章主要讲解学习C++中的.原创 2022-01-10 09:37:27 · 912 阅读 · 26 评论 -
C++初阶-list的使用及模拟
【C++初阶学习】C++list的使用及模拟零、前言一、什么是list二、list的常用接口说明1、list对象常用构造2、list对象属性及迭代器使用3、list对象修改操作4、list迭代器失效问题三、list剖析和模拟实现1、list迭代器封装和节点类2、list常用接口实现3、list和vector对比零、前言本章主要讲解C++中的容器list的使用以及模拟实现一、什么是listlist的介绍:list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点原创 2022-01-02 08:30:58 · 2158 阅读 · 42 评论 -
C++初阶-vector的使用及模拟
【C++初阶学习】vector的使用及模拟零、前言一、什么是vector二、vector的常用接口说明1、vector对象常用构造2、vector对象容量操作3、vector对象访问及遍历操作4、vector对象修改操作5、vector迭代器失效问题三、vector剖析及模拟实现1、vector框架及常用接口展示2、vector模拟常用接口具体细节3、使用memcpy拷贝问题4、动态二维数组理解零、前言本章将学习C++中的vector类,掌握其使用以及模拟实现一、什么是vector介绍:.原创 2021-12-28 09:01:29 · 644 阅读 · 30 评论 -
C++初阶-string的使用及模拟
【C++初阶学习】string类零、前言一、什么是string类1、引入2、概念二、string类常用接口说明1、string类对象常见构造2、string类对象容量操作3、string类对象访问及遍历操作4、string类对象修改操作5、string类非成员函数三、模拟实现string类1、实现string类接口展示2、深浅拷贝问题3、string类深拷贝写法4、string类其他常用接口模拟零、前言本章主要讲解C++string类的相关知识以及使用,还会模拟实现一下string类一、什么是s.原创 2021-12-26 09:22:44 · 774 阅读 · 15 评论 -
C++初阶-模板初阶
【C++初阶学习】C++模板初阶零、前言一、泛型编程二、函数模板1、函数模板定义及使用2、函数模板原理3、函数模板实例化4、函数模板匹配原则三、类模板1、类模板定义及使用2、类模板实例化零、前言本章主要讲解C++的模板相关的初阶知识一、泛型编程用函数重载来实现交换变量函数:void Swap(int& left, int& right){ int temp = left; left = right; right = temp;}void Swap(double.原创 2021-12-22 22:48:40 · 362 阅读 · 16 评论 -
C++初阶-C/C++内存管理
C/C++内存管理零、前言一、C/C++内存分布二、C语言动态内存管理三、C++动态内存管理四、operator new与operator delete函数1、operator new与operator delete函数2、operator new与operator delete的类专属重载五、new和delete的实现原理1、内置类型2、自定义类型六、定位new表达式(placement-new)七、常见面试题1、malloc/free和new/delete的区别2、内存泄漏3、如何一次在堆上申请4G的.原创 2021-12-21 15:13:20 · 436 阅读 · 17 评论 -
C++初阶-Date类的实现
C++类和对象实战-Date类的实现零、前言一、Date类相关接口二、具体接口函数实现1、获取月份天数2、Date打印3、Date构造函数4、Date析构函数5、Date拷贝构造函数6、Date赋值重载函数7、Date+=天数8、Date+天数9、Date-=天数10、Date-天数11、++Date12、Date++13、--Date14、Date--15、日期比较16、Date相减17、日期输入\日期输出零、前言在学了C++类和对象基本知识以及六个默认成员函数后,我们可以上手实现一个Date类出.原创 2021-12-11 20:50:35 · 2073 阅读 · 36 评论 -
C++初阶-类和对象下
C++类和对象-最终之章(下)零、前言一、再谈构造函数1、构造函数体赋值2、初始化列表3、explicit关键字二、static成员三、C++11 新式成员初始化四、友元1、友元函数2、友元类五、内部类六、再次理解封装七、再次理解面向对象零、前言本章为C++类和对象的最后一章,将类和对象的知识进一步学习和掌握一、再谈构造函数1、构造函数体赋值在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值示例:class Date{public: Date(int.原创 2021-12-19 23:10:21 · 399 阅读 · 11 评论 -
C++初阶-类和对象中
C++类和对象一、前言二、类的6个默认成员函数汇总三、构造函数四、析构函数五、拷贝构造函数六、赋值运算符重载1、运算符重载2、赋值运算符重载七、日期类的实现八、const成员九、取地址及const取地址操作符重载一、前言本章是继C++类和对象启点之章的后续,进一步深入学习掌握C++类和对象二、类的6个默认成员函数汇总对于任何一个类来说,在我们不主动写默认成员函数时,会自动生成默认成员函数,总共有6个默认成员函数汇总示图:三、构造函数引入:在C语言数据结构时,创建结构变量我原创 2021-12-14 13:21:14 · 435 阅读 · 22 评论 -
C++初阶-类和对象上
类和对象-起点之章一、前言二、面向过程/对象区别三、类的引入四、类的定义五、类的访问限定符及封装1、访问限定符2、封装六、类的作用域七、类的实例化八、类对象模型1、类对象的大小计算2、结构体内存对齐规则九、this指针1、this指针引入2、this指针的特性3、相关面试题一、前言主要讲解点:本章将开启C++类和对象的学习和讲解,这里是起点之章,为之后的深入掌握类和对象打基础二、面向过程/对象区别C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C+原创 2021-12-06 10:39:53 · 1492 阅读 · 36 评论 -
C++初阶-入门基础语法
前言:本章主要讲解:入门学习C++的各种细碎语法知识一、C++关键字C++总计63个关键字,C语言32个关键字 注:只是看一下C++有多少关键字,不对关键字进行具体的讲解二、namespace概念:在C/C++中变量、函数和类的名称都大量存在于全局作用域中,可能会导致命名冲突使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染定义:使用namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员示例1:普原创 2021-12-04 09:12:02 · 2283 阅读 · 42 评论