上一页 1 ··· 19 20 21 22 23
摘要: queue 队列容器 queue 队列也是一个线性存储表,与后进先出的堆栈不同,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出(First In First Out) 表。插入一端称为队尾,删除一端称为队首。 由于C++ STL 的队列泛化,默认使用双端队列 deque 来实现,因此,queue 也可看成一个容器的适配器,将 deque 容器转换为 queue 容器。当然,也可以利用其它合适的序列容器作为底层实现 queue 容器。 queue队列容器的C++标准头文件为 queue ,需要用宏语句 "#include <queue>" 包含 阅读全文
posted @ 2013-04-11 17:13 He_LiangLiang 阅读(3832) 评论(0) 推荐(1) 编辑
摘要: stack堆栈容器 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom)。堆栈的元素插入称为入栈,元素的删除称为出栈。由于元素的入栈和出栈总在栈顶进行,因此,堆栈是一个后进先出(Last In First Out)表,即 LIFO 表。 C++ STL 的堆栈泛化是直接通过现有的序列容器来实现的,默认使用双端队列deque的数据结构,当然,可以采用其他线性结构(vector 或 list等),只要提供堆栈的入栈、出栈、栈顶元素访问和判断是否为空的操作即可。由于堆栈的底层使用的是其他容器,因此,堆栈可看做是一种适配器,将一 阅读全文
posted @ 2013-04-10 09:48 He_LiangLiang 阅读(16476) 评论(0) 推荐(5) 编辑
摘要: string 基本字符序列容器 C语言并没有提供一个专门的字符串类型,需要通过字符数组,对字符串进行存储和处理。字符数组的末尾是一个值为 0 的 null 字符,表示字符串的结束。从而,一个用于存储 n 个字符的字符数组,字符个数为 n+1 。基于这样的字符数组,就可实现字符串的字符添加、删除、搜索、替换、连接和子串操作等。 在标准 C++ 中,字符串类 string 由 C++ STL 实现,提供丰富的字符串的处理功能。string 是一个基于字符的序列容器,具有vector向量容器一样的内部线性结构,字符逐一写入容器,最后以 null 字符结束。虽然 vector<char> 阅读全文
posted @ 2013-04-09 18:16 He_LiangLiang 阅读(3462) 评论(5) 推荐(3) 编辑
摘要: multimap 多重映照容器 multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multimap 与 map 之间的多重特性差异,类似于 multiset 与 set 的多重特性差异。 multimap 多重映照容器实现了 Sorted Associative Container 、Pair Associative Container 阅读全文
posted @ 2013-04-08 11:14 He_LiangLiang 阅读(22837) 评论(4) 推荐(3) 编辑
摘要: map映照容器 map映照容器所处理的元素数据,与数据库表的具有键值的记录非常相似,由一个键值和其他若干数据(映照数组)组成,键值和映照数据之间,可建立一个数学上的映照关系,由此而得映照容器的名称。容器的数据结构同样是采用红黑树进行管理,插入的元素键值不允许重复,所使用的节点元素的比较函数,只对元素的键值进行比较,元素的各项数据可通过键值检索出来。 map 映照容器是一种关联容器,实现了 Sorted Associative Container 、Sorted Associative Container 、 Unique Associative Container 概念的接口规范 map 容器 阅读全文
posted @ 2013-04-07 09:57 He_LiangLiang 阅读(3534) 评论(4) 推荐(2) 编辑
摘要: multiset 多重集合容器 与 set 集合容器一样, multiset 多重容器也使用红黑树组织元素数据,只是 multiset 容器允许将重复的元素键值插入,而 set 容器则不允许。multiset 容器实现了 Sorted Associativate Container 、Simple Associative Container 和 Multiple Associative Container 概念的接口规范 在用 multiset 的时候,同样需要引用头文件 "#include <set>" 说得通俗点,multiset 是比 set 更复杂一点点 阅读全文
posted @ 2013-04-06 09:51 He_LiangLiang 阅读(7597) 评论(1) 推荐(2) 编辑
摘要: set集合容器 set集合容器使用一种称为红黑树(Red-Black Tree) 的平衡二叉检索树的数据结构,来组织泛化的元素数据。每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需要指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦然。 元素数据的检索,使用的是二叉检索树的中序遍历算法,检索的效率高于 vector 、 deque 和 lsit 等容器。由于采用中序遍历算法可将二叉检索树的键值,由小到大排列遍历出 阅读全文
posted @ 2013-04-05 15:20 He_LiangLiang 阅读(1701) 评论(1) 推荐(1) 编辑
摘要: list 双向链表容器(双向循环链表的数据结构) list 是双向链表的一个泛化容器的容器,实现了 Reversible Container 、 Front Insertion Sequence 和 Back Insertion Sequence 等概念的接口规范。作为一种序列容器,它的数据元素可通过链表指针串接成逻辑上的线性表。 不同于采用线性表顺序存储结构的 vector 和 deque 容器,list 双向链表中任一位置的元素查找、插入和删除,都具有高效的常数阶算法时间复杂度 O(1). list 双向链表容器的 C++ 标准头文件为 list ,必须通过宏语句 "#inclu 阅读全文
posted @ 2013-04-04 16:25 He_LiangLiang 阅读(1406) 评论(0) 推荐(2) 编辑
摘要: deque 双端队列容器 deque 双端队列容器 ( double-ended queue ) 与 vector 非常相似,不仅可在尾部插入和删除元素,还可以在头部插入和删除,算法的时间复杂度也是常数阶 O(1),是一个实现了 Random access container 、Back insertion sequence 和 Front insertion sequence 概念的模型。 deque 内部的数据机制和执行性能与 vector 不同,一般来说,当考虑到容器元素的内存分配策略和操作的性能时,deque 相对 vector 有优势。 deque 的 C++ 标准头文件为 dequ 阅读全文
posted @ 2013-04-04 09:41 He_LiangLiang 阅读(1447) 评论(0) 推荐(2) 编辑
摘要: vector 向量容器 作为数组的一个泛化推广的 vector 容器,不仅可以进行数组一样的元素随机访问,还可以在容器的尾端插入新元素,是一个实现了 Random Access Container 和 Back Insertion Sequence 概念的模型 vector 是一种简单、高效的容器... 阅读全文
posted @ 2013-04-03 19:50 He_LiangLiang 阅读(1982) 评论(1) 推荐(0) 编辑
摘要: 终于,我又开始更新博客了。。。之所以没更新,是因为没学到什么知识,马上就毕业了,必须【闭关】学点东西啊。 以前 ,总觉得 STL 这类东西,等毕业了在去学还来得及。。。但是,笔试了几家公司之后,觉得很多公司都看重这方面的知识, STL 应该在【毕业之前】就学习。 还有,就是觉得 STL 好抽象,不知道从哪开始。 大家都一样的,面对未知的东西,在学习或者操作之前,我们总是会感到迷茫,这很正常。。只要能坚持,能不断去寻找适合的学习的资料、学习的方法,我们总会有突破的。。。哎。这个,只能靠自己了。多看书,敲代码吧。。我也正在这样进行中。。。 在学习 STL 之前,总得有点模板的概念吧。。... 阅读全文
posted @ 2013-04-03 15:39 He_LiangLiang 阅读(685) 评论(0) 推荐(0) 编辑
摘要: 自上一年在做课程设计时,我就老遇到一个问题:在为Dialog建立一个类时,总是会出现 Unable to open "...(类的Head文件)"和"...(类的Implementation文件)" for the class (类名).为了这个问题,我在网上下载节多少个不同的VC++6.0,重装了多少次VC++6.0,这简直是在对我硬盘的进行自残.最后我相信,这是VC++6.0的一个BUG.(这个该死的BUG,让我对ClassWizard 的好感顿时消减掉一半.而在做课程设计的那个紧张时刻,我对这个BUG的厌恶程度已经到达要呕的境地.)而我不知道如何将 阅读全文
posted @ 2012-08-01 16:02 He_LiangLiang 阅读(589) 评论(0) 推荐(0) 编辑
摘要: Visual Studio 2008本身带有GDI+的所有库函数,所以不用像在VC++6.0里那样,需要专门下载GDI+的头文件和lib文件然后手工加入到工程中。但在使用GDI+之前需要首先完成以下几步:1.在stdafx.h文件中加入以下几句话:#include <gdiplus.h> //将GDI+头文件加入到工程中#pragma comment(lib, "gdiplus.lib") //将GDI+的lib文件加入到工程中using namespace Gdiplus; //使用GDI+的命名空间2.假设工程名叫abc,则在自动生成的abc.h文件中添加成 阅读全文
posted @ 2012-07-31 14:28 He_LiangLiang 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 1.下载(GDI+ for VC6.0 SDK)GDIPlus文件将其中的Includes和Lib中的文件拷到vc目录下的Includes和Lib文件夹中. 下载地址:http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip(引用他人的)2.在你将要使用GDI+的工程中,完成初始化工作:在StdAfx.h中加入#define ULONG_PTR unsigned long#include <Gdiplus.h>using namespace Gdiplus;#include "GdiPlus.h"3.在CApp头文件 阅读全文
posted @ 2012-07-31 13:57 He_LiangLiang 阅读(2299) 评论(0) 推荐(0) 编辑
摘要: 【这是本人在书上看到的一个例子,在这里和大家分享】实例说明: Visual C++6.0开发环境虽然提供了丰富的功能,但是也有不尽人意之处。例如,它没有提供批量注释和取消批量注释的功能。但是,Visual C++6.0开发环境的设计者还是非常有远见的,提供了一些接口允许用户扩充开发环境的功能。例如,可以使用 VB Script 脚本来添加新的功能。本实例将介绍使用 VB Script 脚本实现批量注释和取消批量注释的功能。。。。。好了,不废话了,,,直接 上 截图 和 代码 。【1】 在 Visual C++ 6.0开发环境中选择 【File】|【New】 命令,打开 New 窗口,... 阅读全文
posted @ 2012-04-30 21:56 He_LiangLiang 阅读(8580) 评论(8) 推荐(1) 编辑
摘要: 本人只整理的一些常用的参数用法。仅供参考哦。。 阅读全文
posted @ 2011-09-14 11:30 He_LiangLiang 阅读(25526) 评论(8) 推荐(9) 编辑
摘要: //-------程序功能说明: 本程序是一个单链表程序,//-------能实现单链表的 创建、插入、删除、输出、求结点总数、修改。//-------希望大家多提意见。。谢谢。。- - - -- - - -- - - - 程 序 刚 开 始 运 行 时 的 界 面 - - - - - - - -- -- - 这是一个 Source file..... 1 // 单链表.cpp : Defines the entry point for the console application. 2 //=========================================好像有点明白... 阅读全文
posted @ 2011-05-26 08:06 He_LiangLiang 阅读(1844) 评论(6) 推荐(1) 编辑
上一页 1 ··· 19 20 21 22 23