摘要:
在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、vector、list、deque、set 是有序容器1.stringstring 是basic_string<char> 的实现,在内存中是连续存放的.为了提高效率,都会有保留内存,如string s= "abcd",这时s使用的空间可能就是2 阅读全文
posted @ 2012-06-15 15:59
足球王子
阅读(535)
评论(0)
推荐(0)
摘要:
Stack不允许遍历,只有一个出口,只允许对最顶端的元素进行操作。SGI STL默认以deque作为stack的底层结构。为什么要使用deque作为stack的底层结构呢?因为deque可以很容易的封住其中某个方向的接口,而且deque便于扩容,底层结合了list和vector,比起单一的使用list或者vector来实现stack更加方便高效。由于stack是依赖底层容器完成其功能的,所以这种“修改某个物件的接口,形成另一种新的接口”的,叫做adapter。Template<class T, class Sequence=deque<T> > Class stack{ 阅读全文
posted @ 2012-06-15 15:36
足球王子
阅读(3171)
评论(0)
推荐(0)
摘要:
这是微软帮助文档中对集合(set)的解释: “描述了一个控制变长元素序列的对象(注:set中的key和value是Key类型的,而map中的key和value是一个pair结构中的两个分 量)的模板类,每一个元素包含了一个排序键(sort key)和一个值(value)。对这个序列可以进行查找、插入、删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关 系,并且当游标指向一个已删除的元素时,删除操作无效。”而一个经过更正的和更加实际的定义应该是:一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用的。集 合中的元素按一定 阅读全文
posted @ 2012-06-15 14:58
足球王子
阅读(210)
评论(0)
推荐(0)
摘要:
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用ch 阅读全文
posted @ 2012-06-15 14:32
足球王子
阅读(276)
评论(0)
推荐(0)
摘要:
istBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。LBS_MULTIPLESEL 指明列表框可以同时选择多行LBS_EXTENDEDSEL 可以通过按下Shift/Ctrl键选择多行LBS_SOR 阅读全文
posted @ 2012-06-15 12:59
足球王子
阅读(16572)
评论(0)
推荐(0)
摘要:
List容器双向线性表list容器 list类定义了双向的线性表。Vector类支持随机访问,但list只能支持顺序访问,由于list是双向的,因此我们可以按从前到后或者从后到前的顺序来访问list。1.创建一个list对象#include<list>using namespace std; list<int> lst1;list<char> lst2;2.向list对象中添加数值从前面添加: lst1.push_front(0); lst1.push_front(1);从后面添加: lst1.push_back(0); lst1.push_back(1); 阅读全文
posted @ 2012-06-15 11:52
足球王子
阅读(10801)
评论(1)
推荐(0)
摘要:
标准库Vector类型使用需要的头文件:#include <vector>Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。一、 定义和初始化Vector<T> v1; //默认构造函数v1为空Vector<T> v2(v1);//v2是v1的一个副本Vector<T> v3(n,i);//v3包含n个值为i的元素Vector<T> v4(n); //v4含有n个值为0的元素二、 值初始化1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。2> 阅读全文
posted @ 2012-06-15 11:43
足球王子
阅读(19926)
评论(0)
推荐(0)
浙公网安备 33010602011771号