自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GoJawee的博客

OpenCV、C/C++

  • 博客(27)
  • 收藏
  • 关注

原创 第四天2017/03/31(下午1:结构体、数组)

//备用知识:没有内存,哪有指针?int main(){//错误程序 char *name; //此处只定义了指针name(指针占4个字节),并没有给name分配内存 //name = (char*)malloc(100*sizeof(char)); cin>>name; //因此:往name中写数据,程序肯定会运行崩溃! cout<<name;}修改成下面

2017-03-31 17:57:42 473

原创 第四天2017/03/31(上午:指针、数组的小知识)

1、指针数组的应用场景(用处很小)(1)int main(int argc,char* argv[])//cmd命令行(2)菜单2、野指针问题【概念】指针p指向的内存空间被释放掉,但是p指针的值还存在(p还是指向被释放的空间的首地址),此时p就是悬挂指针,又称为野指针。【解决野指针带来的问题】(1)定义指针时,进行初始为NULL;(2)释放指针p时,判断p是否为NULL:若不是NULL才进行

2017-03-31 16:26:06 391

原创 第三天2017/03/30(上午:二级指针的(输入)内存模型:(共三种模型))

字符数组的操作易犯错误: 1.字符数组在使用前是否分配空间 2.字符数组能否返回地址 3.定义char* p;临时变量p,保存strstr等函数返回的地址。 【注】我们只有在使用指针所指向的内存空间的时候,我们才去关心“指针的类型”。二级指针作“输入”时,有下面三种内存模型//内存模式一:函数原型下面4个(哪个正确,哪个错误?)void print_s1(char **p, in

2017-03-30 19:13:21 628

原创 第三天2017/03/30(下午:二级指针的(输出)内存模型)

数组

2017-03-29 18:45:32 448

原创 第二天2017/03/29: 字符串操作

1、堆、栈的生长方向【记忆知识】栈的生长方向:开口向下(后定义的变量的内存地址更小)堆的生长方向:开口向上(后分配内存的变量的内存地址更大)【注意】堆、栈的生长方向和内存存放方向是两个不同的概念,例如:分析a和b的地址大小(栈的生长方向)、a[0]和a[2]的地址的大小(内存存放方向) int a[10]; int b[10];答: a的地址大于b的地址,但是a[0

2017-03-29 17:05:30 526

原创 第一天2017/03/28

程序员培养哪些能力? 两种架构 程序设计思维 【知识点开奖】 1、选择排序思想 ————————————————————x轴 | | | | | | y 轴for(int i=0; i<10; i++) //外层循环:控制第几趟 for(int j=i+1; j<10;j++) //内层循环:比较大小 { if

2017-03-28 16:32:19 507

原创 牛客(错题集)

1、void main(){ int a=1,b=0,c=-1,d=0; d=++a||++b&&++c; cout<<d<<endl; return;}1. C/C++中,布尔值作为整型输出时,表现为:true输出1,false输出0;2. 语句4为逻辑表达式,因此返回值d为1或0;3. 短路原则:||或操作符左操作数为真,即可停止判断,返回1。【解释】运算符优

2017-03-27 16:46:45 479

原创 错误:返回局部变量数组名 \ 解决方案

//对于数组来说,它是一个局部变量,是放在栈里面的,函数返回之后,变量被销毁,内存被回收。#include <stdio.h>char* get_str(){ char str[] = {"hello"}; //错误结果 return str;}int main(){ char* p = get_str(); printf("%s/n", p); r

2017-03-26 12:13:09 520

原创 改善程序的55个具体做法

1、确定对象在使用之前被初始化(1)为内置对象进行手工初始化(因为C++不保证初始化它们)(2)构造函数最好使用成员初始化列表,而不要在构造函数本体内使用赋值操作。2、一个空类会默认生成哪些函数?defult构造函数、copy构造函数、(非虚的)析构函数、赋值运算操作符函数operator=【注】什么情况下,赋值运算操作符函数operator=不会自动生成,或者生成的不能被编译成功?①如果生

2017-03-24 17:33:53 480

原创 C语言深度解剖

1、定义和声明定义:创建了对象并且为该对象分配内存并给该对象取上名字(该名字就是变量名或者对象名),注意:名字一旦和这块内存匹配起来,就同生共死,不离不弃,并且这块内存的位置也不能被改变。声明:没有分配内存,只是告诉编译器,这个名字已经被预定了,别的地方不能再使用它作为变量名和对象名。extern int a; //声明int a; //定义2、皇帝身边的小太监——寄存器register这个关

2017-03-20 19:59:57 655

原创 宏定义

预处理就是在进行编译的第一遍词法扫描和语法分析之前所作的工作。说白了,就是对源文件进行编译前,先对预处理部分进行处理,然后对处理后的代码进行编译。这样做的好处是,经过处理后的代码,将会变的很精短。 关于预处理命令中的文件包含(#include),宏定义(#define)。【预热】先介绍例子显示#define、#ifdef、#ifndef的简单用法//代码举例:新建define.cpp文件#

2017-03-20 11:23:07 1170

原创 多态

多态实现的两大条件: (1)子类重写了父类的虚函数 (2)父类的指针或者引用指向子类的对象 分析条件(1):父类的函数要声明为virtual函数;子类重写该函数,在子类中virtual关键字可写可不写,只要父类中有virtual关键字即可。子类中重写的函数的返回值、函数名、形参必须与父类中被重写的函数的返回值、函数名、形参一模一样!对比下面两大类情况 【情况一:假设有关键字vi

2017-03-20 10:37:24 340

原创 高级(复杂)指针的含义

备用知识 指针数组: int *p[10]; 数组指针: int (*p)[10]; 函数声明: int* f( ); //f是一个返回int*指针的函数 函数指针: int (*p)( ); 【突破口】 ——当前变量是函数?数组?指针?某种类型的强制转换? 学会把解析完的内容看成一个整体! (1)是函数:明确函数的形参与返

2017-03-16 19:46:02 591

原创 用CMake编译运行在网上下载的源文件src

参考:http://blog.csdn.net/yiqiudream/article/details/51885698 1、怎么用CMake打开下载的源文件?工具:下载CMake ——> 链接https://cmake.org/download/ 安装完成后,打开CMake-gui程序 如下图所示: 1. 双击打开cmake-gui, 在最上面两行指定文件路径,第一行是源码所在

2017-03-15 18:48:35 1179 1

原创 C与指针、C陷阱与缺陷

遗留问题: P15理解函数声明 P39指针与数组1、单/多字符符号—->贪心法 a+++++b编译不能通过的原因是?—左值右值 2、 单引号:引起来的一个字符实际上代表一个整数(整数值对应于该字符在编译器采用的字符集中的序列值)。 双引号:引起来的字符串代表一个指向无名数组起始字符的指针。 3、int a = 010; //表示8进制的数。4、运算符的优先级和结合性 【

2017-03-12 14:52:53 2405

原创 c语言框架总结

c语言框架

2017-03-12 12:10:53 1217

原创 尽量使用const、enum、inline代替#define

1、 # define A 1.6 宁可使用编译器也不使用预处理,原因: 当使用预处理时,记号名称A也许从未被编译器看见(因为预处理是在编译阶段进行替换),所以一旦出现编译错误,(如果A被定义在一个非你写的头文件内),你肯定对1.6以及它的来源毫不知情,这样就会因为追踪它而浪费时间。 因此—>用const替换不会发生这种情况(找编译错误难找的情况)。 # define不能进

2017-03-12 11:01:59 648

原创 如何快速将下载好的大量源代码文件加入到VS项目中

[摘要]有时候我们在网上下载一些源码文件,或者直接在C++技术网复制完整的代码,然后存储为代码文件,我们就有很多代码文件了。这些文件是分多个目录和文件的结构,然而我们要将这些代码添加到我们的项目中使用,怎么才能快速添加,而且还保持代码的结构都不变呢?本文教你快速将大量代码文件加入到VS项目。1.我们从网上下载了一个源码,存放在一个文件夹里。文件夹存放在桌面,源代码文件src如下: 2.新建一个

2017-03-10 21:33:13 19766

原创 剑指Offer

http://m.blog.csdn.net/article/details?id=13000431 找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,也算不上多认真,反正一天一天的积累吧。这里我把

2017-03-09 13:03:52 818

原创 C++中的hash_map和map的区别

1)为什么需要hash_map/*例如:我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改:岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典【注】如果你使用STL 的map容器,你可以非常方便的实现这个功能,而不用关心其细节。*/#include <map> #include <string> using namespac

2017-03-09 11:17:19 1293

原创 vector/list/map/set的插入、删除、遍历 - remove\erase函数

1、vector中删除满足某些条件的元素和迭代器失效问题#include <iostream>#include <vector>using namespace std;int main(){ std::vector<int> mVector; mVector.push_back(1); //插入元素push_back mVector.push_back(2);

2017-03-06 11:04:55 1300

原创 (函数/类模板)的(偏特化/全特化)

特化的概念 特化,就是将泛型的东东搞得“具体化”一些,从字面上来解释,就是为已有的模板参数进行一些使其特殊化的指定,使得以前不受任何约束的模板参数,或受到特定的修饰或完全被指定了下来。模板特化的分类 (1)针对特化的对象不同,分为两类:函数模板的特化和类模板的特化 全特化的标志:template <>然后是完全和模板类型没有一点关系的类实现或者函数定义。 全特化的标志:te

2017-03-05 15:45:24 783

原创 define宏定义中的#,##,@#及\符号

1、# (stringizing)字符串化操作符。 其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如:#define example(instr) printf("the input stringis:\t%s\n",#instr)#define example1(instr) #instr当使用该宏定

2017-03-05 10:06:54 649

原创 if (argc == 1) 到底有什么作用?

main的原型函数是: main(int argc, char **argv) 其中: argc 表示接收的命令个数 argv 传入的命令内容argc == 1 就是说参数的个数为1. argv是字符串数组,存的是参数,定义为char**或者char* argv[]【举例】 比如你编译好的程序为my.exe (1)在命令行执行 my.exe 则:

2017-03-04 13:53:16 7139

原创 彩色图批量转换成灰度图、批量格式转换、批量重命名

参考:http://blog.csdn.net/jjff46/article/details/38948621 代码实现的功能:把图片进行批量转换 (1)彩色图片转换成灰度图 (2)图片进行格式转换 (3)图片重新命名实现代码:#include<iostream>#include "cv.h"#include "highgui.h"#include <stdio.h>

2017-03-03 10:06:33 1760

原创 C++之临时对象的构造与析构

1、临时对象产生的时间点 2、临时对象析构的时间点 3、哪些情况必须使用临时对象?示例:#include <iostream> using namespace std; class A{public: A() {cout<<"构造"<<endl;} A(const A& a) { cout<<"拷贝"<<endl; }

2017-03-02 16:34:50 2314 3

原创 C++之static关键字

1、类的静态成员变量、静态全局变量 (1)类的静态成员变量:必须在类外进行显式的初始化。 初始化格式 <类型><类名>::变量名=初值; 【注】如果不进行初始化类的静态成员变量,但是在main函数中使用它时,会编译错误。 (2)但是:静态局部/局部变量:若没有定义变量时进行初始化,会自动初始化为0. 2、类的静态/非静态成员函数相互访问权限 (1)static

2017-03-02 11:10:19 292

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除