随笔分类 - C/C++
基础知识积累
摘要:开始学习C++ 以下是摘记: C++区分大小写 C++的分号是语句的终止符,不能省略 函数头描述了函数与调用它的函数之间的接口,返回值是将处理后的信息返回给调用该接口的函数,参数列表描述了从调用函数传递给被调函数的信息 通常main函数是被启动代码调用,是程序和操作系统之间的桥梁 如果main函数没
阅读全文
摘要:预备知识 第一章是预备知识,并且包含一些背景介绍,大概如下: 1.C++与C有什么不同呢?,C++其实是C的继承和发展,它融合了三种编程方式:面向过程,面向对象,泛型编程。 2.C++和C一样是在贝尔实验室诞生的,由Bjarne Stroustrup 开发实现,目的是更方便地编出好程序,让每个程序员
阅读全文
摘要:1. VOC的格式 VOC主要有三个重要的文件夹: Annotations 、 ImageSets 和 JPEGImages JPEGImages 文件夹 该文件夹下存放着所有的训练集图片,格式都是 需要注意的是命名格式,虽然对命名没有特别要求,但是最好按照官方的命名方法,如 ,`000123.jp
阅读全文
摘要:1.基本概念 后缀表示法也叫逆波兰表示法(前缀就是波兰表示法),由于所有的操作符都在操作数的后面,所以被称为后缀表示法。 中缀表示法的操作符在操作数之间,也是最符合人的逻辑。前缀表示法的操作符在操作数之前,它和后缀表示法一样,都是为了方便计算机计算,因为在后缀或前缀中没有括号,也不存在优先级处理的问
阅读全文
摘要:1. 简介 TinyXML2(最新版本)是一个开源的功能齐全的XML解析库 For C++,源码见: "github" 。 2. 开始使用 首先从Github上获得源码,是一个完整的演示工程,我们只需要其中的 和`tinyxml2.h .lib`然后链接到工程中。 然后包含头文件 ,并使用命名空间:
阅读全文
摘要:1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 函数实现 2.获取指定目录下的所有文件(搜索子文件夹) 3.获取指定格式的文件(不搜索子文件夹) 4.测试 int main(int argc, char argv) { vector temp; getAllFiles("J:\\f
阅读全文
摘要:1.基本概念 dll(dynamic-link library),动态链接库,是微软实现共享函数库的一种方式。动态链接,就是把一些常用的函数代码制作成dll文件,当某个程序调用到dll中的某个函数的时候,windows系统才把dll加载到内存中。也就是说当程序需要的时候才链接dll,所以是动态链接。
阅读全文
摘要:1.基本概念 哈希一般用来快速查找,通过hash函数将输入的键值(key)映射到某一个地址,然后就可以获得该地址的内容。 同样,如果要储存一对值(键值和数据),则也是通过hash函数获得地址来存入。见图例: 不过这其中会出现一些问题,最常见的是出现冲突。就是输入不同的key,经过hash之后得到同样
阅读全文
摘要:1.创建一个线程 创建线程比较简单,使用std的thread实例化一个线程对象就创建完成了,示例: 不过这个示例是有问题的,因为在创建了线程后线程开始执行,但是主线程main()并没有停止脚步,仍然继续执行然后退出,此时线程对象还是joinable的,线程仍然存在但指向它的线程对象已经销毁,所以会抛
阅读全文
摘要:1.基本概念 栈中的元素遵守“先进后出”的原则(LIFO,Last In First Out) 只能在栈顶进行插入和删除操作 压栈(或推入、进栈)即push,将数据放入栈顶并将栈顶指针加一 出栈(或弹出)即pop,将数据从栈顶删除并将栈顶指针减一 栈的基本操作有:pop,push,判断空,获取栈顶元
阅读全文
摘要:程序一般是从main函数开始执行的,main函数标准格式: 其中argc是来自shell(或CMD)的参数的个数,argv是char型的二维数组,储存着命令的内容。 通过一下一个小程序可以认识一下: 运行结果: 还可以将命令参数作为子函数的执行参数,例如: 运行结果:
阅读全文
摘要:1.基本概念 类是具有相同属性和行为的对象的抽象集合,是对象的模板,对象是类的实例化。 类包含成员函数(行为)和数据(属性)两个部分,一般成员函数作为接口,而数据作为某些成员函数的操作对象,通常是对外不可见的(私有的)。 类通过对数据的封装、隐藏,增强了安全性并简化了编程,模块化程度相对应C来说更高
阅读全文
摘要:1.使用vs2013创建普通的应用台控制程序 2.在属性里选择静态库(.lib) 编写库文件: 3.编译,成功后会在目录下生成.lib文件 4.使用示例: 或者不想每次都要链接库文件,就把环境配置好: 01.打开属性 02.添加头文件目录、库文件目录等: Done!然后就不用这句了:
阅读全文
摘要:1. override 重载 当你在父类中使用了虚函数时候,你可能需要在某个子类中对这个虚函数进行重写,以下方法都可以: 如果不使用override,当你手一抖,将foo()写成了f00()会怎么样呢?结果是编译器并不会报错,因为它并不知道你的目的是重写虚函数,而是把它当成了新的函数。如果这个虚函数
阅读全文
摘要:1.使用CreatThread创建 使用CreatThread创建线程是不安全的,容易造成内存泄漏(CRT相关),所以推荐使用_beginThread或_beginThreadex,它内部也使用了CreatThread,但是在使用前做了很多工作以确保其安全性。 2.使用_beginThread创建
阅读全文
摘要:使用SystemParametersInfoA接口来更换windows的壁纸,虽然挺好用,但是我想写一个显示GIF壁纸的程序,想法是将GIF的每一个帧连续切换显示,奈何该接口设置壁纸的时间太长,达不到快速切换的效果。 该接口的用法:
阅读全文
摘要:1.基本概念 C++中的虚函数主要是为了实现多态,就是可以通过父类的指针指向子类的实例并调用子类的成员函数。虚函数有虚函数和纯虚函数,其中纯虚函数是必须在子类中实现的,否则无法实例化该子类。 纯虚函数的格式: 虚函数的实现是通过虚函数表(vfptr),每个父类都有一个虚函数表,父类在每个子类的实例中
阅读全文
摘要:一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结
阅读全文