JoeChenzzz

导航

上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页

2018年9月28日 #

const修饰指针时应注意的问题

摘要: 1.指向常量的指针 顾名思义,一个指针指向const对象,则称它为指向常量的指针。 指向常量的指针也可以指向一个非const对象,所谓指向常量的指针只是要求不能通过它来改变对象的值,而那个对象是可以通过其他途径来改变的: 2.常量指针(const pointer) 指针是一个对象,所以可以把指针本身 阅读全文

posted @ 2018-09-28 16:03 JoeChenzzz 阅读(265) 评论(0) 推荐(0) 编辑

nullptr(c++11)

摘要: 1.概念 用字面值常量nullptr来初始化或赋值来得到空指针 2.c++11之前使用NULL或0 1)NULL是一个宏定义(预处理变量),定义在cstdlib中,其值就是0;对于预处理变量,预处理器会在编译之前的预处理阶段自动将它替换为实际值。所以c++中int* p=NULL等同于把指针p的值置 阅读全文

posted @ 2018-09-28 15:34 JoeChenzzz 阅读(126) 评论(0) 推荐(0) 编辑

直接初始化、拷贝初始化

摘要: 1.直接初始化 1)直接初始化实际上是要求编译器选择参数最匹配的一般构造函数 2.拷贝初始化 1)拷贝初始化实际上时要求编译器将右侧运算对象拷贝到正在创建的对象中,如有需要,还要进行类型转换 2)拷贝初始化通常使用拷贝构造函数来完成 3)拷贝初始化发生时机: 用等号"="定义变量时(注意定义二字,不 阅读全文

posted @ 2018-09-28 11:33 JoeChenzzz 阅读(617) 评论(0) 推荐(0) 编辑

2018年9月27日 #

贪心算法和动态规划的区别与联系

摘要: 联系 1.都是一种推导算法 2.都是分解成子问题来求解,都需要具有最优子结构 区别 1.贪心:每一步的最优解一定包含上一步的最优解,上一步之前的最优解则不作保留; 动态规划:全局最优解中一定包含某个局部最优解,但不一定包含前一个局部最优解,因此需要记录之前的所有的局部最优解 2.贪心:如果把所有的子 阅读全文

posted @ 2018-09-27 23:05 JoeChenzzz 阅读(23609) 评论(0) 推荐(2) 编辑

深度优先搜索DFS和广度优先搜索BFS

摘要: DFS简介 深度优先搜索,一般会设置一个数组visited记录每个顶点的访问状态,初始状态图中所有顶点均未被访问,从某个未被访问过的顶点开始按照某个原则一直往深处访问,访问的过程中随时更新数组visited,碰到已访问的顶点则回溯到前一顶点按原则选择另一条路径走,如果无路可走时则再次回溯,坚持此原则 阅读全文

posted @ 2018-09-27 20:47 JoeChenzzz 阅读(365) 评论(0) 推荐(0) 编辑

摘要: 1.定义 图由有限个顶点和它们之间的边组成 2.图的存储结构 2.1邻接矩阵 1)邻接矩阵用两个数组表示图,一个一维矩阵存储顶点,一个二维数组(称为邻接矩阵)存储边,其元素值为边的权值,如果不存在这条边则计为无穷大(可以是INT_MAX),自己到自己的边值为0 2)邻接矩阵对于边数相对顶点数较少的图 阅读全文

posted @ 2018-09-27 17:02 JoeChenzzz 阅读(218) 评论(0) 推荐(0) 编辑

2018年9月26日 #

移动赋值运算符(c++11)

摘要: 1.概念 1)移动赋值运算符是一个重载的赋值运算符,参数为自身类的右值引用,返回值自身类的左值引用,由于不抛出任何异常,用noexcept指定(如果定义在类的外面,那么定义也要用noexcept指定) 2.合成移动赋值运算符 同移动构造函数 3.具有拷贝赋值和移动赋值两种功能的赋值运算符 此赋值运算 阅读全文

posted @ 2018-09-26 16:04 JoeChenzzz 阅读(3549) 评论(0) 推荐(0) 编辑

移动构造函数(c++11)

摘要: 1.概念 1)C++中对象发生拷贝的场景可以分为两种,一种是被拷贝的对象还要继续使用,另一种是被拷贝的对象不再使用;第二种一般可以认为是对右值的拷贝 2)C++11中引入了移动构造函数,对象发生拷贝时不需要重新分配空间而是使用被拷贝对象的内存,从而提高代码运行效率 3)移动构造函数的第一个参数必须是 阅读全文

posted @ 2018-09-26 15:31 JoeChenzzz 阅读(2055) 评论(0) 推荐(1) 编辑

noexcept(c++11)

摘要: 1.概念 1)c++中的异常处理是在运行时而不是编译时检测的,为了实现运行时检测,编译器可能会创建额外的异常处理代码,然而这会妨碍程序优化 2)noexcept说明符:若修饰函数(紧跟在参数列表后面),则意为承诺编译器这个函数不抛出任何异常 3)C++11之前使用throw()来指明某个函数不会抛出 阅读全文

posted @ 2018-09-26 14:38 JoeChenzzz 阅读(505) 评论(0) 推荐(0) 编辑

右值引用和std::move函数(c++11)

摘要: 1.对象移动 1)C++11新标准中的一个最主要的特性就是移动而非拷贝对象的能力 2)优势: 在某些情况下,从旧内存拷贝到新内存是不必要的,此时对对象进行移动而非拷贝可以提升性能 有些类如IO类或unique_ptr类包含不能被共享的资源,它们不能被拷贝但是可以移动 3)移动操作“窃取”资源,并不分 阅读全文

posted @ 2018-09-26 14:19 JoeChenzzz 阅读(327) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页