C++
主要记录一些关于C++的重要知识点
烊萌
欲戴王冠,必承其重;欲登高峰,必忍其痛;欲有大成,必有其梦。
展开
-
【C++知识】智能指针——shared_ptr
智能指针智能指针是一个模板类,封装了普通指针。通过在构造函数中初始化分配内存,在析构函数中释放内存,达到自己管理内存,不需要手动管理内存的效果。shared_ptr:通过引用计数来实现对象是否被释放。当引用计数为0时,表示没有指针指向这块内存,析构函数可以去释放这块内存了。自己实现://引用计数类class Counter{public: int s; //shared_ptr引用计数 int w; //weak_ptr引用计数 Cou..原创 2020-09-09 10:18:08 · 360 阅读 · 0 评论 -
C++11的chrono总结
C++11的chrono总结chrono是C++11中的时间库,提供计时,时钟等功能。chrono库主要包含了三种类型:时间间隔Duration、时钟Clocks和时间点Time point。Dourationdurqtion表示一段时间间隔,用来记录时间长度,可以表示几秒钟、几分钟或者几个小时的时间间隔,duration的原型是: template<class Rep,class Period=std::ratio<1>> class duartion; 第一个原创 2020-05-16 11:32:29 · 1769 阅读 · 0 评论 -
【C++知识】多线程
多线程目录多线程1、基本创建2、线程管理3、数据竞争与互斥对象4、死锁5、初始化锁的其他机制6、条件变量7、future和promise1、基本创建#include <iostream>#include <thread> using namespace std;//线程执行函数void fun() { cout ...原创 2020-03-20 21:43:39 · 197 阅读 · 0 评论 -
【C++知识】关于迭代器失效的几种情况
前言 关于面试时有被问到过这类问题,当时由于只一知半解,回答的不是特别好,所以今天自己特意来实验一下。希望能帮助大家有同样疑惑的人解答疑惑!目录关于迭代器失效的几种情况1、序列式容器迭代器失效【vector】使用erase使用push_back2、关联式容器迭代器失效【map】关于迭代器失效的几种情况 迭代器(iterator)类似于指...原创 2020-02-26 12:46:24 · 1882 阅读 · 0 评论 -
【C++知识】string和char的那些事
string和char的那些事转换成char[ ]都需要使用strcpy/strncpy#include<iostream>#include<cstring>#include<algorithm>using namespace std;int main(){ //char[]——>char* char str[]=...原创 2020-03-03 16:56:08 · 219 阅读 · 0 评论 -
【C++知识】浅谈STL中各种容器
浅谈STL中各种容器目录浅谈STL中各种容器1、STL六大部件2、容器分类3、各种容器介绍vectordequelistset/mapunordered_map/unordered_set1、STL六大部件容器、分配器、算法、迭代器、适配器、仿函数2、容器分类Sequence Containers Associative Container...原创 2020-02-01 16:41:24 · 226 阅读 · 0 评论 -
【C++知识】浅谈关于C++的内存管理
浅谈关于C++的内存管理目录浅谈关于C++的内存管理1、内存管理的预备工具malloc/free函数new/delete表达式array new/array deleteplacement newallocator分配器2、内存管理1、内存管理的预备工具malloc/free函数void* p1=malloc(512); //分配512个字节...原创 2020-02-01 15:08:30 · 169 阅读 · 0 评论 -
【C++重要知识】从C到C++彻底理解C++重要机制
目录C++的重要特质讲解一、C++和C的区别1、面向过程和面向对象2、const3、引用4、inline二、面向对象模型探索三、面向过程向面向对象的转变四、对象的构造和析构五、深拷贝和浅拷贝问题1、拷贝构造函数2、等号赋值操作符3、move构造函数六、运算符重载七、继承和派生八、多态1、实现多态的三个条件2、多态理论基础3...原创 2019-10-20 19:25:34 · 376 阅读 · 0 评论 -
【Effective C++】第三章 资源管理
目录第三章、资源管理1、以对象管理资源2、在资源管理类中小心coping行为3、对原始资源的访问4、成对使用new和delete时要采取相同形式5、以独立语句将newed对象置入智能指针第三章、资源管理1、以对象管理资源为防止资源泄露,请使用RAII(资源取得时机便是初始化时机)对象,它们在构造函数中获得资源并在析构函数中释放资源。 两个常被使用的RA...原创 2019-10-20 14:50:13 · 118 阅读 · 0 评论 -
【Effective C++】第二章 构造/析构/赋值运算
第二章 构造/析构/赋值运算1、编译器可以暗自为class创建default构造函数、copy构造函数、copy assiginment操作符,以及析构函数。2、为驳回编译器自动提供的机能,例如copy构造函数和copy assiginment操作符,可将相应的成员函数声明为private并且不予实现。3、当derived class对象经过由一个base class指针...原创 2019-10-20 11:56:45 · 183 阅读 · 0 评论 -
【Effective C++】第一章 自己习惯C++
目录一、自己习惯C++1、尽量使用const代替define2、enum hack3、尽量使用const4、确定对象被使用前已先被初始化一、自己习惯C++1、尽量使用const代替defineconst:编译器处理,有语法检查,类型检查,有作用域(如今优秀的编译器在底层实现const:把const存入一个符号表中,也不会分配内存,当对其取地址时,会另外分配内...原创 2019-10-20 10:50:05 · 161 阅读 · 0 评论 -
关于面试中多态的理解
一、谈谈你对多态的理解1、多态的实现效果 同样的调用语句有多种不同的表现形态,即同一个函数在父类与子类中穿梭,所表现出多种形态。2、多态实现的三个条件要有继承 要有虚函数重写 通过父类指针(引用)指向子类3、多态的C++实现 virtual关键字,告诉编译器这个函数要支持多态;不是根据指针类型判断如何使用;而是根据传递给父类指针的实际对象类型判断如...原创 2019-08-29 21:56:04 · 617 阅读 · 0 评论 -
【C++知识】标准库特殊设施
前言 本章介绍了一些特殊IO操作和四个标准库类型:tuple、bitset、正则表达式和随机数。内容还是挺多的,如果想了解更多详细知识,建议自行查看书籍,这里主要介绍一些细节。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!十四、标准库特殊设施 标准库占据了新标准文本将近三分之二的篇幅,虽然我们不能详细介绍所有标准库设施,但仍然有一些标准库设施...原创 2019-08-18 14:50:35 · 474 阅读 · 0 评论 -
【C++知识】用于大型程序的工具
前言 C++的某些特性特别适合于处理超大规模问题,这些特性包括:异常处理、命名空间以及多重继承或虚继承。这章知识还是挺多挺复杂的,想了解更多详细知识,建议大家自行查看书籍,这里主要介绍一些细节问题。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!十五、用于大型程序的工具 当我们编写比较复杂的、小组和个人难以管理的系统时,异常处理、命名空间和多重继承这些...原创 2019-08-21 10:35:36 · 411 阅读 · 0 评论 -
【C++知识】面向对象程序设计
前言 这一章主要讲解了面向对象程序设计,重点是继承和动态绑定,继承使得我们可以编写一些新的类,这些新类既能共享其类的行为,又能根据需要覆盖或添加行为。动态绑定使得我们可以忽略类型之间的差异,其机理是在运行时根据对象的动态类型来选择运行函数的哪个版本。继承和动态绑定的结合使得我们能够编写具有待定类型行为但又独立于类型的程序。动态绑定只作用于虚函数,并且需要通过指针或引用调用。关于...原创 2019-08-12 11:35:35 · 309 阅读 · 0 评论 -
【C++知识】字符串、向量和数组
前言 这一章主要介绍了string、vector和数组,知识不是很全,主要是介绍了一些需要注意的细节,如果需要了解更加详细的知识可以看书籍。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:C++的一些基础知识】【下一章:函数】二、字符串、向量和数组1、标注库类型string需加上头文件#include<string>...原创 2019-07-29 11:22:03 · 118 阅读 · 0 评论 -
【C++知识】函数
前言 关于C++中介绍函数,也不是很多,主要就是重载函数这一块,其他的详细知识建议大家还是自行看书籍,这个知识介绍一些小的细节部分。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:字符串、向量和数组】【下一章:类】三、函数函数三要素:返回类型、函数名、形参类型数组形参//尽管形式不同,但这三个print函数是等价的...原创 2019-07-30 21:45:50 · 110 阅读 · 0 评论 -
【C++知识】类
前言 这一章介绍了C++中的核心知识:类,知识不是很全面,大家可以自行看书籍,这个主要是一些需要注意的细节。最后,如果有什么不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:函数】【后一章:IO类】四、类构造函数 类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数称为构造函数。无论何时只要类的对象被创建,就会执行构造函数...原创 2019-07-31 11:28:17 · 116 阅读 · 0 评论 -
【C++知识】泛型算法
前言 这一章主要介绍泛型算法,关于常用的泛型算法,需要自己在写程序时用到才会更熟悉它的用法。在这一章还有一个特别重要的概念:lamda表达式,是一个可调用的对象。关于更多详细的知识,建议自行查看书籍。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:顺序容器】【下一章:关联容器】七、泛型算法 顺序容器只定义了很少的操作...原创 2019-08-04 09:07:25 · 163 阅读 · 0 评论 -
【C++知识】关联容器
前言 这一章介绍了关联容器,对于关联容器可以认为是下标为关键字的数组,关联容器不支持随机访问。只能使用关键字作为索引来进行访问值。关于更多的知识,大家可以自行查看书籍,这里主要介绍一些细节问题。最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:泛型算法】【下一章:动态内存】八、关联容器 关联容器中的元素是按关键字来保存和访问...原创 2019-08-04 11:36:07 · 120 阅读 · 0 评论 -
【C++知识】IO类
前言 这一章介绍了关于C++的IO类,关于文件的读入和输出。【C++系列】【前一章:类】【后一章:顺序容器】五、IO类IO对象无拷贝或赋值ofstream out1,out2;out1=out2; //赋值错误ofstream print(ofstream); //不能初始化ofstream参数out2=print(out2); /...原创 2019-08-01 12:46:46 · 115 阅读 · 0 评论 -
【C++知识】动态内存
前言 动态内存主要就是靠自行分配和自行销毁内存。内存的正确释放是非常容易出错的,所以有智能指针类型——shared_ptr、unique_ptr和weak_ptr,可令动态内存管理更为安全。需要了解更详细知识,大家可自行查看书籍,这里只介绍一些细节地方。最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:关联容器】【后一章:拷贝控制】九、动态内...原创 2019-08-06 10:20:11 · 140 阅读 · 0 评论 -
【C++知识】顺序容器
前言 在这一章介绍了各种顺序容器,建议大家首先考虑用vector这个顺序容器,这章内容不是很多,如果大家想看详细知识,可以自行查看书籍,这里主要是介绍一些需要注意的细节。最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:IO类】【后一章:泛型算法】六、顺序容器顺序容器类型vector:可变大小数组 deque:双端队列 lis...原创 2019-08-01 22:09:52 · 106 阅读 · 0 评论 -
【C++知识】拷贝控制
前言 这一章主要介绍了拷贝控制,也就是C++的三/五原则:拷贝构造函数、拷贝赋值运算符、析构函数、移动构造函数和移动赋值运算符,前三个就是三原则,加上后面两个就是五个原则。关于更多详细的知识,大家可以自行查看书籍,这里主要介绍一些细节。最后,如果有什么理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:动态内存】【后一章:重载运算与类型转换】十、拷贝控制...原创 2019-08-08 14:27:13 · 250 阅读 · 0 评论 -
【C++知识】重载运算与类型转换
前言 这一章介绍了各种重载运算和类型转换,知识点有点儿多,大家需要花时间才能记住。需要了解更多知识,建议大家自行查看书籍,这里就只是介绍一些细节问题。最后,如果有理解不对的·地方,希望大家不吝赐教,谢谢!【C++系列】【前一章:拷贝控制】【下一章:待续】十一、重载运算与类型转换 当运算符作用于类类型的运算对象时,可以通过运算符重载重新定义该运算符的...原创 2019-08-09 20:54:16 · 242 阅读 · 0 评论 -
【C++知识】模板与泛型编程
前言 一个模板就是一个编译器生成特定类类型或函数的蓝图。生成特定类或函数的过程称为实例化。我们只编写一次模板,就可以将其用于多种类型和值,编译器会为每种类型和值进行模板实例化。这一章内容有点儿多,需要大家慢慢看和理解,需要了解更多详细知识,建议自行查看书籍,这里主要介绍一些细节。最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!十三、模板与泛型编程 ...原创 2019-08-14 21:19:21 · 260 阅读 · 0 评论 -
【C++知识】关于C++的一些基础知识
前言 这一章介绍了C++的一些基础知识,包括引用、指针和const限定符等,可能不是很全,主要是一些需要注意的小细节,关于更详细的知识,大家可以自行去看书籍。最后,如果有理解不对的地方,希望大家不吝赐教,谢谢!【C++系列】【下一章:字符串、向量和数组】一、引用 一般在初始化对象时,初始值会被拷贝到新建的对象中,然而定义引用时,程序把引用和它的初始值绑...原创 2019-07-29 09:20:59 · 210 阅读 · 0 评论