
STL
文章平均质量分 55
秋刀鱼之味
这个作者很懒,什么都没留下…
展开
-
STL之String
string和char*的区别 1、string是一个类, char*是一个指向字符的指针。 string封装了char*,管理这个字符串,是一个char*型的容器。也就是说string是一个容器,里面元素的数据类型是char*。 2、string不用考虑内存释放和越界。 string管理char*所分配的内存。每一次string的复制,取值都由string类负责维护,不用担心复制越界和原创 2017-08-19 08:29:05 · 223 阅读 · 0 评论 -
STL各容器适用情况
一、各容器特性 vector 典型的序列容器,C++标准严格要求次容器的实现内存必须是连续的,唯一可以和标准C兼容的stl容器,任意元素的读取、修改具有常数时间复杂度,在序列尾部进行插入、删除是常数时间复杂度,但在序列的头部插入、删除的时间复杂度是O(n),可以 在任何位置插入新元素,有随机访问功能,插入删除操作需要考虑。 deque 序列容器,内存也是连续的,和vector相似,区别在于在转载 2016-11-14 22:30:39 · 679 阅读 · 0 评论 -
STL之算法
adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。否则返回past-the-end。vector<int> vecInt; vecInt.push_back(1); vecInt.push_back(2); vecInt.push_back(2); vecInt.push_back(4); vecInt.push_原创 2017-08-19 10:35:52 · 411 阅读 · 0 评论 -
STL之Map和multimap容器
map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操作和删除操作上比vector快。 map可以直接存取key所对应的value,支持[]操作符,如map[ke原创 2017-08-19 10:18:30 · 406 阅读 · 0 评论 -
STL之优先级队列priority_queue
最大值优先级队列、最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用 示例代码int main(void) { priority_queue<int> p1; priority_queue<int, vector<int>, less<int>> p2; priority_queue<int, vector<int>, gr原创 2017-08-19 09:55:21 · 270 阅读 · 0 评论 -
STL之List容器
list是一个双向链表容器,可高效地进行插入删除元素。 list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err) #include <list>对象的默认构造 list采用采用模板类实现,对象的默认构造形式:list lstT; 如:list<int> lstInt; //定义一个存放int的list容器。 list<fl原创 2017-08-19 09:48:28 · 220 阅读 · 0 评论 -
STL之Queue
queue是队列容器,是一种“先进先出”的容器。 queue是简单地装饰deque容器而成为另外的一种容器。 #include <queue>对象的默认构造 queue采用模板类实现,queue对象的默认构造形式:queue queT; 如:queue<int> queInt; //一个存放int的queue容器。 queue<float> queFloat; //原创 2017-08-19 09:38:15 · 270 阅读 · 0 评论 -
STL之Stack
stack是堆栈容器,是一种“先进后出”的容器。 stack是简单地装饰deque容器而成为另外的一种容器。 #include <stack>stack对象的默认构造 stack采用模板类实现, stack对象的默认构造形式: stack stkT;stack <int> stkInt; //一个存放int的stack容器。 stack <float> stkFloat;原创 2017-08-19 09:32:08 · 250 阅读 · 0 评论 -
STL之Deque容器
deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。 deque在接口上和vector非常相似,在许多操作的地方可以直接替换。 deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。 deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费原创 2017-08-19 09:19:03 · 362 阅读 · 0 评论 -
STL之Vector
vector是将元素置于一个动态数组中加以管理的容器。可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法,还支持迭代器方式存取)。 vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时。 对象初始化 对象的默认构造 vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; vector<int> vecInt;原创 2017-08-19 08:59:05 · 435 阅读 · 0 评论 -
STL之Set和multiset容器
set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。 set不可以直接存取元素。(不可以使用at.(pos)与[]操作符)。 multiset与set的区别:set支持唯一键值,每个元素值只能出现一次;而multise原创 2017-08-19 10:05:29 · 291 阅读 · 0 评论