![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ 笔记
时光碎了天
高级图像算法工程师,研究领域包括图像/视频降噪、图像压缩、图像超分、目标检测、语义分割、模型压缩以及OCR。
展开
-
c++知识总结(1)
不同于其它成员函数,构造函数不能被声明称const的:const是可以修饰类的成员函数,但是该函数不能修改数据成员。构造函数也属于类的成员函数,但是构造函数是要修改类的成员变量,所以类的构造函数不能申明成const类型的。某些类不能依赖合成的默认构造函数:第一个原因,编译器只有在发现类不包含任何构造函数的情况下才会替我们生成 生成一个默认的构造函数。一旦我们定义了一些其他的原创 2017-08-08 11:42:02 · 350 阅读 · 0 评论 -
c++知识总结(3)
关联容器支持高校的关键字查找和访问。两个主要的关联容器类型是map和set。map中的元素时一些关键字-值对:关键字起到索引的作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字;set支持高校的关键字查询操作——检查一个给定关键字是否在set中。按关键字有序保存元素:map 关联数组;保存关键字-值对set 关键字即值,即只保存关键字的容器multimap 关键原创 2017-08-09 14:47:48 · 200 阅读 · 0 评论 -
c++知识总结(2)
1.顺序容器类型vector 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快list 双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快forward_list 单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度很快。array 固定大小数组。原创 2017-08-08 16:35:05 · 185 阅读 · 0 评论 -
c++知识总结(4)
静态内存用来保存局部static对象、类static数据成员以及定义在任何函数之外的变量。栈内存用来保存定义在函数内的非static对象。分配在静态或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在其定义的程序块运行时才存在;static对象在使用之前分配,在程序结束时销毁。除了静态内存和栈内存,每个程序还拥有一个内存池。这部分内存被称作自由空间或堆。程序用堆来存储动态分配的对象——即,原创 2017-08-09 16:19:29 · 247 阅读 · 0 评论 -
c++知识总结(5)
拷贝构造函数:如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数时拷贝构造函数。拷贝构造函数的第一个参数必须是引用类型。如果其参数不是引用类型,则调用永远不会成功——为了调用拷贝构造函数,我们必须拷贝它的实参,但为了拷贝实参,我们又需要调用拷贝构造函数,如此无限循环。拷贝初始化不仅在我们用=定义变量时会发生,在下列情况下也会发生:1.将一个对象作为实原创 2017-08-10 09:25:46 · 189 阅读 · 0 评论 -
c++知识总结(6)
基类通过在其成员函数的声明语句之前加上关键字virtual是的该函数执行动态绑定。任何构造函数之外的非静态函数都可以是虚函数。关键字virtual只能出现在类内部的声明语句而不能用于类外部的函数定义。如果基类把一个函数声明成虚函数,则该函数在派生类中隐式地也是虚函数。静态类型与动态类型表达式的静态类型在编译时总是已知的。它是变量声明时的类型或表达式生成的类型;动态类型则是变量或表达式表示的原创 2017-08-11 09:55:13 · 213 阅读 · 0 评论 -
Effective C++总结
条款01:视C++为一个语言联邦在《Effective C++》里提到对内置(C-like)类型在函数传参时pass by value比pass by reference更高效,当用OO的c++自定义类型(存在构造/析构等)pass by reference to const 更好,STL里的迭代器和函数对象是用C指针实现的,因此pass by value更好。条款02:尽量const原创 2017-08-29 12:14:12 · 586 阅读 · 0 评论