![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++基础
Amazing life
在校学生,比较喜欢编程,日常打码记录遇到的问题
展开
-
c++之lambda表达式
在写代码时,我们会遇到这种代码:sort(points.begin(),points.end(),[](const vector<int>& u,const vector<int>& v){ return u[0] * u[0] + u[1] * u[1] < v[0] * v[0] + v[1] * v[1]; });我们知道sort()函数第三个参数是函数符,函数指针或者lambda表达式,而这个例子中后面一串长原创 2020-11-09 20:30:14 · 340 阅读 · 0 评论 -
c++之右值引用与移动语义
c++11新增了一个新的特性:移动语义,这是一个非常有用的特性,今天我们就来了解一下这个特性。右值引用首先看下什么是右值引用。右值可以简单理解为可作用于等号右边的一类数据,它们有一个重要的特征:可以取其值不可以取其地址。比如说13这个数字,不能对它进行取地址操作,也就是不能&13.常见的右值有:1.字面常量(c风格字符串除外)2.函数返回值3.类似于x+y这种类型的表达式所谓右值引用也就是对右值进行引用。通过&&操作符完成比如int &&x = 13原创 2020-11-05 15:32:33 · 354 阅读 · 0 评论 -
STL中的set
STL中的set是一个常见的数据结构,所以今天在这里做个归纳;简介:set相当于数学中的集合,每个元素最多出现一次,而且set中元素已经是从小到打排好序了。内部采用的是红黑树模型,插入删除效率比较高,因为它插入删除时只需要改变结点的值而不需要移动结点。同时查找也是采用的二分查找法常见函数:begin(),end():注意end()返回的是指向超尾的迭代器rbegin(),rend(): 返回反向迭代器clear():清空empty():判断是否为空max_size() : 最大存储size(原创 2020-10-29 14:32:42 · 341 阅读 · 0 评论 -
c++中final关键字的作用
c++中final关键的作用最重要就是两个,先强调下:1.禁止虚函数被重写2.禁止基类被继承final:指定不能在派生类中重写虚函数或不能从中继承类。在虚函数声明或定义中使用时,final确保函数是虚函数,并指定它不能被派生类重写。否则程序格式错误(生成编译时错误)。在类定义中使用时,final指定该类不能出现在另一个类定义的基说明符列表中(换句话说,不能从中派生)。否则程序格式错误(生成编译时错误)。final也可以与union定义一起使用,在这种情况下,它没有任何影响(除了std::is_fi原创 2020-10-19 23:06:49 · 2755 阅读 · 0 评论 -
malloc
一、区别其实在使用的大部分场景下,两者是可以通用的,但是我们还是要知道他两的区别。1、malloc与free是c++/c语言的标准函数,new/delete是C++的运算符。2、他们都可用于申请动态内存和释放内存。new/delete比malloc/free更加智能,其实底层也是执行的malloc/free。为啥说new/delete更加的智能?因为new和delete在对象创建的时候自动执行构造函数,对象消亡之前会自动执行析构函数。既然new/delete的功能完全覆盖了malloc和free,为原创 2020-10-19 00:07:11 · 160 阅读 · 0 评论 -
c++基础知识归纳 static的作用
c++中static关键字的作用可以用两个属性归纳它,一个是作用域,一个是生存周期。静态局部变量:作用域:函数体内生存周期:整个程序运行期间静态全局变量:作用域:文件内部生存周期:整个程序运行期间静态函数:作用域:文件内部生存周期:整个程序运行期间静态数据成员:作用域:类内部生存周期:大于class的对象静态成员函数:作用域:类内部生存周期:大于class对象下面是它们各自的特点:静态局部变量:随着第一次函数的调用而初始化静态全局变量:定义在函数体外,用于修饰全局变量,表原创 2020-10-10 09:35:15 · 178 阅读 · 0 评论