自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 收藏
  • 关注

原创 makefile 文件中的宏

1.makefile 文件中的宏的定义:MACRONAME = value,如果你想把某一个宏的值置为空,你可以在等号(=)后面留空格。这里的MACRONAME 是 CC ,这里的value 是 gcc 2.makefile 文件宏的使用 $$(MACRONAME)或者${MACRONAME},make的某些版本还接受$MACRONAME的用法

2016-05-18 15:41:32 942

原创 Makefile 没有规则创建目标“main.o”需要的目标“main.c”

问题:Makefile 没有规则创建目标“main.o”需要的目标“main.c” make 命令假设在Makefile文件中的第一个目标“myapp”是想创建的目标文件。然后它会检查其它的依赖关系,并确定需要一个有一个名为“main.c”的文件。由于并未创建该文件,Makefile文件里也就未说明如何创建该文件,所以make的第一条命令报错。下面来创建“main.c文件并重新进行make

2016-05-18 14:15:41 16712

原创 Makefile 的 遗漏分隔符错误信息

问题:Makefile 的 遗漏分隔符错误信息 经过调查,发现是这样的: 2,4,6,8行是具体的编译动作。开头不可以有空格,留白是由 按tab键形成的。去掉空格,改为tab键后,再执行make命令,成功

2016-05-18 14:04:43 1025

原创 stl之remove()

1.stl 算法:算法通过迭代器对容器区间的数据元素进行操作。stl中算法包含在头文件中,都是全局函数通过迭代器可应用在任何stl容器中。在使用stl算法时,我们必须明白算法是一个函数,所以我们得明白(1)函数的功能(2)函数的参数(3)函数的返回值是什么(4)时间空间复杂度如何。2.下面我们首先介绍下:manipulatingalgorithm(更改型算法)也就是说,这些算法会对容器区间中的

2015-09-14 10:39:23 2310

原创 c++stl之逆向迭代器 Reverse Iterators

1.什么是逆向迭代器?逆向迭代器是一个迭代器,是一个类,拥有迭代器的4种基本操作:*取值,++递增,=赋值,== ,!=比较。我们知道stl就是把数据和算法进行分离,数据存储在容器中,算法通过迭代器对容器内元素进行操作。逆向迭代器就是以逆向的方式进行所有操作。所有容器都可透过成员函数(rbegin()和rend()产生逆向迭代器)reverse iterator2.c++代码#incl

2015-09-13 16:53:47 1032

原创 c++迭代器详解(一):back_inserter, front_inserter,inserter

1.stl迭代器之配接器( Iterator Adapters)迭代器(Iterators)是一个纯抽象的概念:任何东西,只要其行为类似迭代器,它就是一个迭代器.也就是说,只有具备有迭代器的四种基本操作:取值(*),递增(++)比较(== !=) 赋值(=)它就是迭代器。因此,你可以自己写一些类别(classes),具备迭代器接口,但有着各不相同的行为。c++标准库中提供了数个预先定义的特

2015-09-13 10:14:23 20195

原创 浅析c++迭代器之multimap

关联式容器1.什么是关联式容器关联式容器依据特定的排序法则,自动对容器内的数据元素进行排序。排序的准则是以函数的形式呈现出来的,用来比较数据元素的值(value)或者键(key)。在默认的缺省状态下是以 operator2.关联式容器的底层实现关联式容器是由搜索二叉树(binary tree)实现出来的。3.关联式容器的类别:关联式容器的差别主要在于数据元素

2015-09-10 14:37:11 3065

原创 c++ stl之关联式容器 set

关联式容器1.什么是关联式容器关联式容器依据特定的排序法则,自动对容器内的数据元素进行排序。排序的准则是以函数的形式呈现出来的,用来比较数据元素的值(value)或者键(key)。在默认的缺省状态下是以 operator2.关联式容器的底层实现关联式容器是由二叉树(binary tree)实现出来的。3.关联式容器的类别:关联式容器的差别主要在于数据元素的类

2015-09-10 09:57:11 794

原创 c++ stl 之迭代器浅析

1.c++ stl之迭代器(iterator)迭代器是一个可遍历stl容器内全部或者部分元素的一个类(注意这里是类)。一个迭代器用来指出容器中的一个特定位置,也就是指出数据元素在容器内的位置。2.所有迭代器都有以下四个基本操作:(1)Operator * 返回迭代器所指的数据元素(2)Opertator ++ 将迭代器前进至下一元素 (3)Operator == 和Op

2015-09-09 21:41:37 585

原创 浅析c++ stl 之list

1.stl容器之listlist 是c++标准模板库中 一种非常重要的序列式容器。序列式容器意味着容器中的数据元素的顺序只和插入的时机有关同样,list作为一种容器用来存储数据元素集合.简单来说也就是一种数据结构,我们必须从逻辑结构和物理结构两个角度来考虑。2.逻辑结构:容器list中存放的数据元素之间的关系是一对一的线性关系。3.物理结构:容器list是由双向链表(d

2015-09-09 16:22:05 486

原创 浅析c++ stl 之deque

1.stl容器之deque在stl中,容器是用来存储数据元素集合的一种数据结构。我们知道分析数据结构必须从两方面 入手:(1)逻辑结构(2)物理结构(存储结构)2.逻辑结构:deque “double-ended queue”中的数据元素之间的关系是一对一的线性关系3.物理结构:采用的存储结构为可以往两端发展的动态数组,是一种顺序存储结构4.性质和用途还

2015-09-09 15:39:55 683

原创 c++ stl 之vector浅析

1.了解stl中的vectorvector是序列式容器,每个元素在容器中的位置和插入的顺序有关。2.数据结构:vector中元素的逻辑结构:vector中的元素是一对一的线性关系vector中元素的存储结构:vector中的元素是存储在动态数组(dynamic array)(顺序存储结构)3.性质和用途结构决定性质,性质决定用途:因为vector 中的数据元素是一对一的线性

2015-09-09 10:40:43 580

原创 字符串最后一个单词的长度

2.c++代码实现:#include#includeusing namespace std;unsigned last_word_length( const string &line);//主程序:用来从标准输入端获取字符串line ,显示结果unsigned main(int argc, char **argv){ string line; getline(cin,

2015-09-07 15:24:48 952

原创 c++之 字符串 中的单词逆序输出

题目:从标准输入装置取得一个个英文单词,然后将其中的各个字符(字母)逆序输出!单词和单词之间以一般空格符(换行符 newline , 空格符space 或定位符tab)或者逗号,句号,分号分隔开来。数据结构:字符串逻辑思路:(1)输入n(0,1,2,多)个英文单词(2)字母逆序输出(每个单词的字母逆向输出)单词:当出现这些字符 表明其是一个单词(一般空格符(换行符 newlin

2015-09-06 09:39:52 6378

原创 栈(stack)

1.什么是栈?栈(stack)是一种只能在表的一端进行插入和删除的线性表。是一种一对一的线性关系。因为只能在栈顶进行插入和删除.这种结构特性决定了栈只能的性质:后进先出(Last In First Out),结构决定性质,性质决定用途,所以凡是具有后进先出特性的都可以用栈来描述这里主要介绍c++标准库中栈的接口及实现2.stl中的stackclass stack3.

2015-09-05 20:27:28 1392

原创 队列 c语言实现

1.导言栈和队列是两种常见的线性表,栈因为只能在表的一端进行插入和删除,这种结构决定了栈后进先出的特性,队列也是一种受限的线性表,队列只能在表的一端进行插入,在表的另一端进行删除。允许插入的一端叫做队尾(rear),允许删除的一端被称之为队头(front)。这种结构决定了队列具有先进先出(FIFO)的特性.对队列来说,在我们日常生活中,随处可见。去食堂排队打饭,最早排队的人,最先拿着饭菜离开,

2015-08-23 14:18:14 3952

原创 c语言之进制转换(栈实现)

从上两篇博客中我们可以知道,栈具有后进先出的特性,而进制转换的打印输出刚好与计算过程相反,满足栈这后进先出的特性, 所以可以用栈很快的实现进制转换,下面是用栈实现进制转换的c函数void conversion (SqStack *pstack,unsigned int N, const unsigned int d){ if( pstack == NULL)//当传入参数为指针,必须判空 e

2015-08-21 21:48:09 6815

原创 C语言之 进制转换(循环)

#includeusing namespace std;void conversion( unsigned N ,const int d,int mod[100],int *pcount);int main(void){ //将十进制整数(N)转换为d(2,8,16)进制 //算法思路:每次 N div d 之后的余数,直到N 为0,反向 //测试用例{0,1,2504} in

2015-08-21 20:51:06 1215

原创 栈的C语言源码

1.导言(为什么要用栈?)通常来说,决定采用何种方式来存储数据是非常重要的,这样便于对数据检索时,数据会自动按照某种规定的顺序给出。栈和队列是检索数据的一种常用的数据结构。栈和队列是两种非常重要的数据结构,从数据结构来看,栈和队列也是线性表。是操作受限的线性表,栈只能在一端(栈顶)进行插入和删除,队列只能在一端(队尾)进行插入在另一端(队头)进行删除。但是从数据类型来说,栈和队列是和线性表不大

2015-08-21 14:34:08 3408 4

原创 单链表 之c代码

我们知道数据结构就是数据及其相互关系,包括逻辑结构和物理结构。单链表的逻辑结构是一种一对一的线性关系,物理结构是利用节点把数据结合起来,在计算机中体现这种一对一的数据关系。单链表节点包括包含数据本身信息的数据域和体现数据一对一关系的指针域。因为单链表只有一个指向后一节点的单一指针域next 所以单链表只能从前往后遍历,而不能从后向前遍历,这就意味着一旦单链表的某一节点丢失 ,后面所有的数据信息都会

2015-08-18 18:30:41 1964 1

原创 数据结构之 树的基本概念

对于数据结构,我们大家都知道,数据结构,包括物理机构和逻辑结构,所以对于树与二叉树我们必须明白什么是树,什么是二叉树 1.基本内容 (1)二叉树的定义,性质,存储结构 (2)二叉树的遍历和线索化以及遍历算法的各种描述形式 (3)树和森林的定义,存储结构,与二叉树的转换,遍历 (4)树的多种定义 2.数据结构 = 逻辑结构+ 物理结构 树的逻辑结构,3.什么是树? 树是以分支关系

2015-07-24 10:41:47 539

原创 详解const

const 作为c++非常重要得一个类型修饰关键字,也是面试时,经常被问到的一个c++知识点,那么究竟什么是 const,我们又该怎样使用const呢? 1.什么是const? const 是c++的一个类型修饰符,一个对象一旦被const修饰,意味着这个变量在以后不允许再修改,也就是一旦你觉得某值再以后的使用者 不能再修改了,你就可以使用const。一旦你使用了const 就相当于告诉编译器或

2015-07-15 14:57:26 638

原创 详解c++ 引用(reference)与 指针(pointer)的区别与联系

引用(reference) 与指针(pointer)之间有什么区别和联系呢?我相信,对于很多初学c++的程序猿来说,不是一件简单的事.那么在c++中,引用与指针到底有什么联系和区别呢?要弄清楚这个问题,我们必须明白 : 1.什么是引用?什么是指针? 2.为什么要用引用?为什么要用指针? 3.引用和指针有什么优缺点? 4.怎样使用引用和指针? 5.引用与指针有什么联系和区别? 下面容小生

2015-07-15 10:27:55 22491 4

原创 函数参数之 传常引用(passed by reference to const)替换 传值(passed by value)

我们知道,对于一个c++程序员来说,相对于java 等其它面向对象语言而言,效率就是c++程序的生命所在,如何使得c++在拥有良好的面向对象特性(抽象,封装,继承,多态)特性上,极大的提高c++程序的效率呢?其中最关键的技巧就是在函数参数的传递过程中 以传常引用替换传值(Prefer pass-by-reference-to-const to pass-by-value), 传常引用替换传值为什么

2015-07-12 11:19:42 2423

原创 详解成员函数的常量性

1.什么是成员函数的常量性? 关于成员函数的常量性当前有两个流行的概念(1)bitwise constness(又称physical constness) (2)logical constness(1)什么称之为bitwise constness ? bitwise constness 是指 ,成员函数只有在不更改对象的任何成员变量(static 除外,因为类的static 变量属于类 而

2015-07-11 15:18:20 889

原创 c++ 常量指针 const*const

1.什么是常量指针 我们可以使用const 来修饰指针,在用const 修饰指针时,我们可以指出,指针自身,指针所指的内容,为常量 const。当const修饰指针时,如果关键字const出现在 星号* 左边 表示的是指针所指的内容为常量,如果关键字const 出现在星号* 右边 表示的是指针本身为常量。如果const出现在星号*两边 表示 指针本身 和指针所指的内容都为常量,不能被修改。为了更

2015-07-10 17:23:27 887

原创 递归

递归1.什么是递归? 2.为什么要用递归? 3.怎样使用递归 4.递归有哪些优缺点1.什么是递归? 递归是一个函数在函数内部直接或间接的调用函数自身。 2.为什么要使用递归? 递归一般用于解决三类问题: (1)数据的定义是按递归定义的(如 Fibonacci函数) (2)问题的解法按递归算法实现(如 Hanoi问题) Hanoi塔问题详解,参考文档 这类问题虽本身没有明

2015-06-03 10:55:30 828

原创 排序

排序 1.什么是排序? 2.为什么要排序? 3.怎样排序? 1.什么是排序? 排序(sorting):是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列 2.为什么要排序? (1)为了查找方便,我们知道,有序的顺序表可以用折半查找,其平均查找长度为log(n+1)-1,而无序表的顺序表的查找只能进行顺序查找,其平均查找长度为(n+1)/2 (2) 二叉排序树,B-树 的构造

2015-05-07 22:37:57 519

原创 opencv 计时函数

opencv 计时 我们知道opencv中 有时候需要知道 算法的执行时间 ,来衡量算法的优劣性,那么opencv 怎样进行计时呢?opencv中主要用两个函数来进行计时操作,这两个计时函数便是:getTickCount() 和getTickFrequency() 下面我们详细讲解getTickCount ()和 getTickFrequency()及其怎么使用它们来对算法进行计时 1.什么是

2015-04-29 16:47:14 3617 1

原创 浅谈void 和void*

空类型 void 空类型指针void* 总结: 1. 什么是void void 是空类型 ,不指向任何类型 ,用在两个地方: (1) 当函数不返回任何值时 函数的返回类型应该是void 而不是缺省状态,在缺省状态下函数的默认返回类型为 int (2) 当函数不接受任何类型的参数时,参数列表应该为void 而不是 缺省状态,缺省状态是表明函数可以接受任何类型 ,任何个数的参数 如:

2015-04-23 21:37:55 1080

原创 c++ 数据类型,及其使用技巧

谈到数据类型,我们必须了解什么是数据类型数据类型:数据的意义及我们能在数据上执行的操作。大多数计算机以2的整数次幂个位作为块来处理内存,类型决定了数据在内存中所占的位数,以及编译器如何解释这些位的内容。c++ 有哪些数据类型呢?c++数据类型 可以分为4大类:(1)基本内置类型(布尔型,字符型,整形,浮点型)(2)用户自定义类型也就是c++面向对象的核心:类(3)c++

2015-04-09 21:23:20 1051

C++primer 最新第五版 例程 源代码

c++ primer 第五版 源码 源代码为cpp文件 可以直接用记事本打开 方便大家 拷贝进行调试 节约敲代码时间 《C++ Primer 中文版(第5版)》所有示例均全部采用 C++11 标准改写

2014-06-04

最大子段和(分治法)源码

用分治法求最大子段和,适合刚接触数据结构的初学者

2013-01-15

空空如也

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

TA关注的人

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