随笔分类 -  STL

摘要:1、简介 (1)STL 是 C++ 标准程序库的核心。STL 内所有组件都由模板构成,其元素可以是任意类别。 (2)STL译为标准模板库。STL从根本上讲是“容器”的集合,也是组件的集合。 容器包括:list、vector、set、map等,组件包括迭代器、算法等。 (3)STL的算法是标准算法,可 阅读全文
posted @ 2016-05-23 15:02 程序员姜戈 阅读(691) 评论(0) 推荐(0)
摘要:1、字符串库简介 (1)字符串类 在STL中只有一个字符串类,即basic_string,Basic_string 管理一个’\0’结尾的字符数组。字符类型由模板参数决定。 为了使用string类,必须包含头文件<string>。 在STL库中,basic_string 有两个预定义类型: a、包含 阅读全文
posted @ 2016-05-23 14:59 程序员姜戈 阅读(228) 评论(0) 推荐(0)
摘要:1、vector (1)定义 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。 vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。 (2) 阅读全文
posted @ 2016-05-23 14:58 程序员姜戈 阅读(271) 评论(0) 推荐(0)
摘要:1、List (1)定义 List是一种序列式容器。List容器完成的功能实际上和数据结构中的双向链表是极其相似的,List中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是List也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。 (2)底层实现 List的实现 阅读全文
posted @ 2016-05-23 14:53 程序员姜戈 阅读(292) 评论(0) 推荐(0)
摘要:1、Deque (1)定义 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容。deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还支持从开始端插入数 阅读全文
posted @ 2016-05-23 14:41 程序员姜戈 阅读(342) 评论(0) 推荐(0)
摘要:1、序列容器 (1)vector vector和built-in数组类似,拥有一段连续的内存空间,能非常好的支持随即存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝。 另外,当插入较多的元素后,预留内存空间可能不够,需要重新申请一块足够大的内存并把原来的数据 阅读全文
posted @ 2016-05-23 14:36 程序员姜戈 阅读(319) 评论(0) 推荐(0)
摘要:1、Stack (1)定义 栈是一种容器适配器,特别为后入先出而设计的一种(LIFO ),那种数据被插入,然后再容器末端取出。 默认情况下,如果没有容器类被指定成为一个提别的stack 类,标准的容器类模板就是deque 队列。 堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶(Stac 阅读全文
posted @ 2016-05-23 14:35 程序员姜戈 阅读(464) 评论(0) 推荐(0)
摘要:1、Queue (1)定义 queue单向队列与栈有点类似,一个是在同一端存取数据,另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。 在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。因 阅读全文
posted @ 2016-05-23 11:59 程序员姜戈 阅读(490) 评论(0) 推荐(0)
摘要:1、Set (1)定义 set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。 set,顾名思义是“集合”的意思,用来存储同一数据类型的数据类型。 在set中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交(set_inters 阅读全文
posted @ 2016-05-23 11:53 程序员姜戈 阅读(351) 评论(0) 推荐(0)
摘要:1、分类 我们常用到的STL容器有vector、list、deque、map、multimap、set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我们了解清楚。 2、Verctor 优点: 典型的序列容器,C++标准严格要求次容器的实现内 阅读全文
posted @ 2016-05-23 11:46 程序员姜戈 阅读(179) 评论(0) 推荐(0)
摘要:1、Map (1)定义 Map是标准关联式容器(associative container)之一,一个map是一个键值对序列,即(key ,value)对。它提供基于key的快速检索能力,在一个map中key值是唯一的。map提供双向迭代器,即有从前往后的(iterator),也有从后往前的(rev 阅读全文
posted @ 2016-05-23 11:45 程序员姜戈 阅读(731) 评论(0) 推荐(0)