C++
基本语法与运用
HySmiley
程序猿的视界
展开
-
C++笔记(一)
#ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量“重定义”的错误。在头文件中实用#ifndef #define #endif能避免头文件的重定义。 方法:例如要编写头文件test.h 在头文件开头写上两行:#ifndef _TEST_H /转载 2017-04-12 23:10:08 · 239 阅读 · 0 评论 -
VS中删除以前增加的库文件
根据需求要添加新的库到VS中方法1:项目->属性->C/C++->附加包含目录:填写附加头文件所在目录 ,分号间隔多项项目->属性->链接器->附加库目录:填写附加依赖库所在目录 分号间隔多项项目->属性->链接器(点前面的+展开)->输入->附加依赖项:填写附加依赖库的名字.lib 空格间隔多项方法二:创建属性表,每次创建工程后在属性管理器中Debug|win32下添原创 2017-12-09 20:57:30 · 3572 阅读 · 0 评论 -
C++高级编程(一)文件和流
C++高级编程内容:文件和流、异常处理、动态内存、命名空间、模板、预处理器、信号处理、多线程、Web编程等。C++标准库:点击打开链接std:: 是个名称空间标示符,C++标准库中的函数或者对象都是在命名空间std中定义的,所以我们要使用标准函数库中的函数或对象都要使用std来限定。 对象cout是标准函数库所提供的对象,而标准库在名字空间中被指定为s原创 2017-11-22 22:46:49 · 372 阅读 · 0 评论 -
STL(五)list 双向链表
list底层数据结构list同样是一个模板类,它底层数据结构为双向循环链表。因此,它支持任意位置常数时间的插入/删除操作,不支持快速随机访问。迭代器类型list的迭代器具备前移、后移的能力,所以list提供的是Bidirectional iterator(双向迭代器)。由于采用的是双向迭代器,自然也很方便在指定元素之前插入新节点,所以list很正常地提供了inser原创 2017-11-30 21:21:07 · 595 阅读 · 0 评论 -
C++高级编程(二)异常
C++中有标准异常库,其中exception是基类,标准库所生成的所有异常继承自std::exception。class exception {public: exception () noexcept; exception (const exception&) noexcept; exception& operator= (const exception&) noexcept;原创 2017-11-23 21:52:14 · 863 阅读 · 0 评论 -
C++高级编程(三)动态内存
栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。调试时静态变量与全局变量直接跳过,只有运行到指针变量所在行时才分配地址。函数在栈中占用一个连续的区域,一个函数占用的区域被称作帧(frame)。同时栈是线程独立的,每个线程都有自己的栈。new 与 malloc() 函数相比,其主要原创 2017-11-24 16:59:29 · 340 阅读 · 0 评论 -
C++高级编程(四)命名空间
命名空间:简单来说就是将函数、对象、类打包在一个固定的空间(固定域),用来区分同名函数、对象或类,使用时只需在函数、对象或类前加上作用域来确定是使用哪个域(空间)。C++标准库使用的命名空间是std。命名空间定义namespace name{//自定义的标识符} 直接使用: 命名空间名::[命名空间名::…原创 2017-11-24 20:31:28 · 215 阅读 · 0 评论 -
C++高级编程(五)模板
模板:属于泛型编程,泛型编程指的是代码“重用”,固定的代码但是其内部函数、对象类型或类可以不同。1、函数模板函数模板的声明形式为:template(参数表){ 函数体}#includeusing namespace std;templatevoid add(T a, Y b){ cout <<(int)a<<"+"<<(int)b<<"=" << a + b << endl;原创 2017-11-24 21:57:03 · 1532 阅读 · 0 评论 -
C++高级工程(六)预处理器
预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。预处理器的主要作用就是: 把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有: 文件包含,条件编译、布局控制和宏替换4种。 文件包含: #include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。 条件编译: #if,#ifndef,#ifdef,#en原创 2017-11-25 20:11:47 · 396 阅读 · 1 评论 -
VS2013安装Boost库
1、VS2013中安装配置和使用Boost库: http://blog.csdn.net/u012333003/article/details/38078655 2、按照上面网址中教程出现的问题打开cmd命令窗口,运行bootstra.bat文件下面是报错内容:‘cl’不是内部或外部命令,也不是可运行的程序 或批处理文件后来经过查询。发现问题出在,我的VS卸载后,VS201...原创 2018-03-04 19:27:36 · 685 阅读 · 0 评论 -
STL(六)forward_list 单向链表
参考:http://blog.csdn.net/devourheavens/article/details/7497172http://zh.cppreference.com/w/cpp/container/forward_listforward_listtemplate > class forward_list;Forward list原创 2017-11-30 23:02:22 · 2964 阅读 · 1 评论 -
STL(一)array静态数组
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。C++ 标准模板库的核心包括以下三个组件:组件描述容器(Containers)容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、原创 2017-11-27 23:18:26 · 1033 阅读 · 0 评论 -
非线性滤波
非线性滤波:中值滤波,双边滤波线性滤波:两个信号之和的响应和它们各自响应之和相等(即每个像素的输出值是一些输入像素的加权和)。非线性滤波:中值滤波:用像素点领域灰度值的中值来代替该像素点的灰度值,该方法在去除脉冲噪声,椒盐噪声的同时又能保留图像的边缘细节。优点:由于噪声很难选上,所以几乎不会影响到输出,克服线性滤波器所带来的图像细节模糊,对滤波脉冲干扰即图像扫描噪声最为有效原创 2017-04-20 10:22:29 · 1610 阅读 · 0 评论 -
形态学滤波
基本形态学滤波:膨胀,腐蚀膨胀腐蚀功能:消除噪声,分割出独立的图像元素,在图像中连接相邻的元素,寻找图像中的明显的极大值区域或极小值区域,求出图像的梯度。膨胀是向着高亮部分进行膨胀,腐蚀亮度腐蚀,呈现暗区域。膨胀:求局部最大值,就是将图像(图像某一区域A)与核(B)进行卷积,有有一参考点(锚点)。核B与图形卷积,即计算核B覆盖的区域的像素点最大值,并把这个最大值赋给参考点指定的原创 2017-04-20 14:01:38 · 3695 阅读 · 0 评论 -
C++笔记(二)
1、C++中若对dos界面输入无限制,想终止结束按快捷键:Ctrl+Z2、C++中对于变量设置的类型,若给其赋值超出其范围则重新回到原来范围规则:变量(无符号)%该类型的范围加1如:unsigned char a;其范围0------255,若a=266,输出a的int型结果0,a=267;int型结果1,相当于 a%256 若变量是有符号的如char b;其范围-128--原创 2017-04-21 20:40:52 · 210 阅读 · 0 评论 -
练习(六)
1、链接:https://www.nowcoder.com/questionTerminal/2bae2bca15904cde960a4411bd84018b来源:牛客网以下程序的输出结果为() #include #include void main() { char x[] = "STRING"; x[0] = 0; x[1] = '\原创 2017-08-03 23:22:47 · 1304 阅读 · 0 评论 -
C++引用
转载请注明出处:http://www.cnblogs.com/Ljian1992/p/4198015.html概述 变量是一段实际的连续的存储空间的别名,程序中通过变量来申请并命名存储空间,并且通过变量的名字可以使用该存储空间。在C语言中一段实际的连续的存储空间只能有一个别名(指针不能当作别名),但在C++中一段实际的连续的存储空间却可以有多个别名,这一种实现的机制即为引转载 2017-06-20 09:10:03 · 236 阅读 · 0 评论 -
指针变量与变量地址
一、基本概念 存储单元一般应具有存储数据和读写数据的功能,以8位二进制作为一个存储单元,也就是一个字节。每个单元有一个地址,是一个整数编码,可以表示为二进制整数。程序中的变量和主存储器的存储单元相对应。变量的名字对应着存储单元的地址,变量内容对应着单元所存储的数据。存储地址一般用十六进制数表示,而每一个存储器地址中又存放着一组二进制(或十六进制)表示的数,通常称为该地址的内容。原创 2017-06-19 15:12:49 · 4257 阅读 · 0 评论 -
C++ 中数据存储的分析
C++中,内存分为5个区:1.堆、2.栈、3.自由存储区4.全局/静态存储区和5.常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,转载 2017-06-20 10:01:56 · 920 阅读 · 0 评论 -
插入排序
插入排序定义:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法--插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组原创 2017-04-19 16:49:21 · 418 阅读 · 0 评论 -
VS2013+MFC 简易音乐播放器
1、新建MFC应用程序,选择基于对话框,点击完成。2、选择工具箱中的对话框编辑器,被选择的编辑器修改其ID及名称。3、部分编辑器需要添加消息处理函数。编译中出现的错误:1、错误 1 error LNK2001: 无法解析的外部符号 "public: void __thiscall CSket原创 2017-11-08 21:45:35 · 12798 阅读 · 4 评论 -
坦克大战(一)
网站:点击打开链接是助 C++语言初学者上手图形编程的网站。在VS2013中没有图形库:从点击打开链接下载对应编辑器的EasyX库,EasyX 是针对 C++ 的图形库,可以帮助 C++语言初学者快速上手图形和游戏编程。安装EasyX :点击打开链接。从网站:点击打开链接可以学坦克大战的游戏设计。我主要加深对C++面向对象编程的理解。面向对象的三大特性:封装、继承、多态原创 2017-11-10 18:21:08 · 2109 阅读 · 0 评论 -
STL(三)vector复杂对象的创建及遍历
由上一节中了解vector基本使用,但是往往编程中使用vector复杂类型创建对象,因为泛型编程中类型的自由。这样使得对象变得更为复杂。1、二维数组定义:vector> obj;#include#include#include#includeusing namespace std;//二维数组遍历//迭代器void reverse_with_itera原创 2017-11-29 22:01:46 · 1040 阅读 · 0 评论 -
STL(四) deque 双端队列
deque底层数据结构vector是单向开口的线性连续空间,deque则是一种双向开口的连续数据空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。当然vector也可以在头尾两端进行操作,但是其头部操作效果奇差,所以标准库没有为vector提供push_front或pop_front操作。与vector类似,deque支持元素的快速随机访问。deque的示意图如原创 2017-11-30 17:05:52 · 1283 阅读 · 0 评论 -
STL(二)vector 动态数组
vector的底层数据结构是动态数组,因此,vector的数据安排以及操作方式与std::array十很相似,它们间的唯一差别在于对空间的运用灵活性上。array为静态数组,有着静态数组最大的缺点:每次只能分配一定大小的存储空间,当有新元素插入时,要经历“找到更大的内存空间”->“把数据复制到新空间” ->“销毁旧空间” 三部曲, 对于std::array而言,这种空间管理的任务压在使用它的用原创 2017-11-28 22:51:35 · 485 阅读 · 0 评论 -
Visual Studio 2013 配置Boost库。 如何编译和选择,遇到无法打开文件“libboost_thread-vc120-mt-gd-1_58.lib的解决办法
来源:http://www.th7.cn/Program/cp/201508/522064.shtml1.到官网下载最新的boost,www.boost.org 这里我下载的1-58版本2.解压3.从开始菜单打开VS的Visual Studio Tools,选择X86命令提示(感觉应该也可以用Dos) 4.到解压目录下,例如我解压到D盘,则进入D盘,转载 2018-03-18 16:41:33 · 1183 阅读 · 0 评论