随笔分类 -  STL

摘要:摘要:本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值。vector(向量)——STL中标准而安全的数组。只能在vector 的“前面”增加数据。deque(双端队列double-ended queue)——在功能上和vector相似,但是可以在前后两端向其中添加数据。list(列表)——游标一次只可以移动一步。如果你对链表 阅读全文
posted @ 2013-10-07 20:50 小薇林 阅读(3014) 评论(1) 推荐(0)
摘要:转自深秋的落叶向量(vector)连续存储的元素Vectorc;c.back()传回最后一个数据,不检查这个数据是否存在。c.clear() 移除容器中所有数据。c.empty()判断容器是否为空。c.front() 传回地一个数据。c.pop_back() 删除最后一个数据。c.push_back(elem) 在尾部加入一个数据。c[i]等同于 c.at(i);列表(list)由节点组成的双向链表,每个结点包含着一个元素listlist1(1,2,3)front()返回第一个元素的引用 intnRet =list1.front()// nRet = 1back()返回最后一元素的引用 int 阅读全文
posted @ 2013-10-06 11:14 小薇林 阅读(259) 评论(0) 推荐(0)
摘要:每个容器都有很多操作,以下操作为所有容器共有的:一.构造,拷贝和析构ContType <Elem> c 创建一个空容器,其中没有任何元素ContType <Elem> c1(c2) 创建一个同种类形容器的一个copyContType <Elem> c(beg,end) 创建一个容器,以区间[beg,end)做为元素初值 c.~ContType <Elem>() 销毁所有元素,并释放内存二.与大小相关的操作c.size() 返回当前的元素数量c.empty() 返回 bool 型,判断容量是否为0。 等同与 size()==0, 但可能更快 c.m 阅读全文
posted @ 2013-06-18 12:28 小薇林 阅读(273) 评论(0) 推荐(0)
摘要:本系列是我学习 STL 的一些笔记,都是一些我工作中常用的主题。其中主要参考《C++标准程序库》这本书和一些网络上的博客。一.STL 组件1. 容器(Containers):用来管理某类对象的集合。2. 迭代器(Iterators):用来在一个对象群集的元素上进行遍历动件。迭代器的接口和一般指针差不多,以operator++累加,以operator* 提取所指的值。3. 算法(Algorithms):用来处理群集内的元素。STL 的基本观念就是将数据与操作分离。数据由容器类加以管理,操作由算法定义,迭代器在两者之间充当粘合剂,使任何算法都可以和任何容器交互运作,如下图:二.容器容器可以分为两类 阅读全文
posted @ 2013-06-18 10:54 小薇林 阅读(402) 评论(0) 推荐(0)