
C++
文章平均质量分 54
code_caq
机器学习、计算机视觉爱好者。
努力学习的新人!
展开
-
数据结构之链表-链表实现及常用操作(C++篇)
之前刷leetcode和剑指offer,看到很多需要用到链表的题,但没看到什么全面总结链表的文章,刚看到一篇总结链表的,很详细,特别好。出处:http://www.cnblogs.com/byonecry/p/4458821.html自己在此之上再进行了补充数据结构之链表-链表实现及常用操作(C++篇)0.摘要链表数据结构插入节点(单向链表)删除节点(单向链表)反向遍历链表找出中间节点找出倒数第k...转载 2017-04-01 11:44:50 · 2281 阅读 · 0 评论 -
二叉树深度优先(DFS)和广度优先(BFS)算法的非递归实现
广度优先(BFS):队列(先进先出)void BFS(Tree *root){ queue q; q.push; while(!q.empty()) { root=q.front(); //访问队首元素 coutdata; s.pop();原创 2017-03-31 11:29:05 · 1911 阅读 · 0 评论 -
C++知识点小结
reference: 作者:大叔龙 链接:http://www.jianshu.com/p/e21d99638cf9 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.基础问答:容器、数据结构、排序算法什么得 2.然后一顿虚函数、虚函数表、纯虚函数、抽象类、析构函数、拷贝构造函数 3.操作数重载、STL、智能指针、内存问题1,你知道虚函数吗? 答案:实转载 2017-09-24 12:05:20 · 1185 阅读 · 0 评论 -
数组shuffle
题意:给数组洗牌,随机打乱顺序思路:(1)遍历数组,每次随机生成一个坐标位置(2)交换当前遍历位置和随机生成的坐标位置的数字,直到遍历到最后一个元素C++实现:vector shuffle(vector &v){ vector res=v; for(int i=0;i { int t=rand()%res.size原创 2017-03-31 14:06:25 · 1523 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历(递归与非递归)
本文主要总结二叉树的前序、中序、后序遍历,分为递归和非递归(1)前序遍历:根→左→右(2)中序遍历:左→根→右(3)后序遍历:左→右→根 首先定义一个二叉树:struct BiTree { char val; BiTree *lchild; BiTree *rchild; }; 1.递归的方法原创 2017-03-31 13:55:39 · 412 阅读 · 0 评论 -
STL之containers和<algorithm>-Reference
http://www.cplusplus.com/reference/ 使用的时候需要加上相应的头文件转载 2017-04-08 16:03:30 · 507 阅读 · 0 评论 -
C++一些基本概念总结【数据表达篇】
本文总结了C++中一些最基本的概念1.C和C++的区别C语言:面向过程,结构化和模块化C++面向对象程序设计特点:自下至上,从局部开始。 面向对象程序设计主要特征: (1)封装性:类 (2)继承性:派生类、基类 (3)多态性:函数重载、模板、虚函数2.变量与数据类型2.1常量 const常量:c原创 2017-03-28 21:00:53 · 549 阅读 · 0 评论 -
C++一些基本概念总结【面向过程篇】——编译预处理
编译预处理作用:编译器在第一遍扫描之前所做的工作,处理完预处理部分再编译。包括:宏定义、包含文件处理、条件编译等。(1)文件包含:#include cin、cout:iostream.h printf,scanf:stdio.h “”:去当前的源文件原创 2017-03-28 21:51:00 · 375 阅读 · 0 评论 -
C++一些基本概念总结【面向过程篇】——数组
数组的声明声明一维数组:[]={},如char a[5],int b[ ]={1,2,3}声明多维数组:[][]...[]={},如float c[2][3]注意:(1)一维下标表达式表示数组中元素的个数,可以省略,但必须赋初值,这样系统会根据所赋初值的个数来确定数组的大小。(2)不能用变量来描述元素的个数,但可以用const。(3)二维数组下表表达式不能省原创 2017-03-29 09:06:51 · 396 阅读 · 0 评论 -
C++一些基本概念总结【面向过程篇】——指针
(1)定义指针:存储类型名数据类型 *指针变量名(定义必须用*)存储类型名:静态、栈、自动类型数据类型:指针指向的数据类型。指针本身数据类型是unsigned long int。如 int *p1、static int *p2、char *p3指针变量是p而不是*p可以在一起定义通过指针给指向的变量赋值,如 inta=1,*pa=&a; 再赋值:*pa=2;(a变成2原创 2017-03-29 10:32:32 · 519 阅读 · 0 评论 -
C++一些基本概念总结【面向过程篇】——函数
本文主要总结【函数】相关概念。函数定义一般形式如下:返回类型 函数名(参数列表){ 函数体}注意:(1)如果参数列表中没有参数,称之为无参函数(2)函数中用return返回返回值。如果没有返回值,返回类型为void;如果没有明确指定类型,默认返回类型为int(3)C++不允许函数嵌套定义如下是非法的void f1(){原创 2017-03-28 21:07:27 · 484 阅读 · 0 评论 -
OpenCV2.4.9+VS2013配置
出处:http://jingyan.baidu.com/article/75ab0bcbee4b47d6864db2fc.htmlopencv2.4.9地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.9/opencv-2.4.9.exe/downloadVS2013网上找……主要步骤如转载 2017-03-31 22:00:21 · 2207 阅读 · 0 评论 -
C++中基类和派生类的一个应用
题意:一个公司有很多员工,也有主管。每天员工和主管都需要签到,但主管可以用签到机确认有多少人上班,也可以按员工ID顺序或签到顺序打印出上班的员工,还可以找出倒数第n个上班的员工是谁。要求:用面向对象的方法分析和实现;所有操作的时间消耗和空间消耗越低越好,其中排序算法的时间复杂度不超过O(nlogn),极端情况下也不可以退化为n^2思路:员工是基类,主管是派生类。选用排序方式原创 2017-04-01 10:59:49 · 847 阅读 · 0 评论 -
关于“warning C4018: “<”: 有符号/无符号不匹配”的解释
有一段程序如下:……vector v;for(int i=0;i……运行后出错:warning C4018: “原因如下: v 是一个vector ,v.size() 是unsigned int(无符号)类型, 而i是int(有符号)类型 所以会出现: 有符号/无符号不匹配的警告把int i=0改成unsigned int i=0或者size_t int i原创 2017-04-04 15:46:10 · 2370 阅读 · 0 评论 -
C++中<iostream>和<iostream.h>区别
iostream是C++的头文件,iostream.h是C的头文件,即标准的C++头文件是没有.h扩展名的将以前的C的头文件转化为C++的头文件后,有时加上c的前缀表示来自于c,例如cmath就是由math.h变来的iostream.h里面定义的所有类以及对象都是在全局空间里,所以你可以直接用cout 但在iostream里面,它所定义的东西都塞在命名空间std里面,所以你必须加上原创 2017-04-05 10:21:15 · 739 阅读 · 0 评论 -
排序算法总结与C++实现(冒泡、简单选择、直接插入、堆、归并、快速)
几种排序算法时间复杂度和空间复杂度:1.冒泡排序 如果是从小到大排序,从最后一个元素开始,依次与前一个元素比较,比前一个元素小则交换。这样小的元素就浮到上面了。第二轮再从最后一个元素开始。 C++实现如下:(优化版,引入了flag)void bubbleSort(vector<int> &A) { bool flag=1; for (int j = 0; j < A.siz原创 2017-04-15 11:55:49 · 850 阅读 · 0 评论 -
图像傅里叶变换与逆变换OpenCV实现
代码步骤: 读入图像->傅里叶变换->傅里叶逆变换->读取图像int main(){ cv::Mat img = cv::imread("lena.jpg"); DFTtransform(img); cv::imshow("DFT img", img); cv::waitKey(); system("pause"); ...原创 2018-03-13 21:10:57 · 4907 阅读 · 0 评论