心胸决定格局,眼界决定境界...

文章分类 -  STL

摘要:三、具体容器、算法1、所有容器都提供了一个默认的构造函数,一个拷贝构造函数。例如:list l;....vector ivector(l.begin(),l.end());int array[]={1,2,3,4};....set iset(array,array+sizeof(array)/sizeof(array[0]));2、与大小相关的函数size(),empty(),max_size()3、返回迭代器的函数begin(),end(),rbegin(),rend()4、比较操作==,!=,,>=....Vector详解:capacity(),返回vector能够容纳的元素个数。s 阅读全文
posted @ 2014-01-24 23:48 WELEN 阅读(324) 评论(0) 推荐(0) 编辑
摘要:容器(Container)算法(Algorithm)迭代器(Iterator)仿函数(Function object)适配器(Adaptor)空间配置器(allocator)1、容器作为STL的最主要组成部分--容器,分为向量(vector),双端队列(deque),表(list),队列(queue),堆栈(stack),集合(set),多重集合(multiset),映射(map),多重映射(multimap)。容器特性所在头文件向量vector可以用常数时间访问和修改任意元素,在序列尾部进行插入和删除时,具有常数时间复杂度,对任意项的插入和删除就有的时间复杂度与到末尾的距离成正比,尤其对向量 阅读全文
posted @ 2014-01-24 23:40 WELEN 阅读(6295) 评论(0) 推荐(5) 编辑
摘要:C++STL 常用算法,使用时包含#include 一、非变异算法是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。非变异算法具有极为广泛的适用性,基本上可应用与各种容器。1查找容器元素find它用于查找等于某值的元素。它在迭代器区间[first,last)(闭开区间)上查找等于value值的元素,如果迭代器i所指的元素满足*i=value,则返回迭代器i;未找到满足条件的元素,返回last。函数原型:find( v1.begin(), v1.end(), num_to_find );#include #include #include using. 阅读全文
posted @ 2013-12-15 00:11 WELEN 阅读(149) 评论(0) 推荐(0) 编辑
摘要:一、关于map的介绍map是STL的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。学习map我们一定要理解什么是一对一的数据映射?比如:一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int 描述,姓名用字符串描述采用的st 阅读全文
posted @ 2013-12-15 00:09 WELEN 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在STL使用过程中,并不会感到陌生。关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能 阅读全文
posted @ 2013-12-15 00:08 WELEN 阅读(191) 评论(0) 推荐(0) 编辑
摘要:1.关于list容器list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指针域。前驱元素指针域保存了前驱元素的首地址;数据域则是本节点的数据;后继元素指针域则保存了后继元素的首地址。其实,list和循环链表也有相似的地方,即:头节点的前驱元素指针域保存的是链表中尾元素的首地址,list的尾节点的后继元素指针域则保存了头节 阅读全文
posted @ 2013-12-15 00:06 WELEN 阅读(174) 评论(0) 推荐(0) 编辑
摘要:1.vector的简单介绍vector作为STL提供的标准容器之一,是经常要使用的,有很重要的地位,并且使用起来也是灰常方便。vector又被称为向量,vector可以形象的描述为长度可以动态改变的数组,功能和数组较为相似。实际上更专业的描述为:vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。(注:STL的容器从实现的角度讲可以说是类模板(class teplate)。)那么vector和数组的主要区别是什么呢??这对 阅读全文
posted @ 2013-12-15 00:03 WELEN 阅读(204) 评论(0) 推荐(0) 编辑