永夜初晗凝碧天

本博客现已全部转移到新地址,欲获取更多精彩文章,请访问http://acshiryu.github.io/

导航

随笔分类 -  STL详解

STL简介:http://www.huihoo.org/gnu/linux/stl.html
标准模板库(STL)学习指南之set集合
摘要:set是关联容器。其键值就是实值,实值就是键值,不可以有重复,所以我们不能通过set的迭代器来改变set的元素的值,set拥有和list相同的特性:当对他进行插入和删除操作的时候,操作之前的迭代器依然有效。当然删除了的那个就没效了。set的底层结构是RB-tree,所以是有序的。 stl中特别提供了一种针对set的操作的算法:交集set_intersection,并集set_union,差集set_difference。对称差集set_symeetric_difference,这些算法稍后会讲到。一:set模板类的声明。template < class key class =Traits 阅读全文

posted @ 2011-07-20 10:28 ACShiryu 阅读(2224) 评论(0) 推荐(1) 编辑

标准模板库(STL)学习指南之vector向量
摘要:vector– 一. vector可以模拟动态数组– 二. vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public 拷贝构造函数和重载的赋值操作符) 三.必须包含的头文件#include <vector>– 四. vector支持随机存取– 五. vector的大小(size)和容量(capacity)通常是不同的,size返回实际元素个数, capacity返回vector能容纳的元素最大数量。如果插入元素时,元素个数超过capacity, 需要重新配置内部存储器。 ->构造、拷贝和析构->非变动操作eg. vector<int> 阅读全文

posted @ 2011-07-20 09:45 ACShiryu 阅读(527) 评论(0) 推荐(0) 编辑

标准模板库(STL)学习指南之sort排序
摘要:对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去考虑其算法原理,也不用再去验证其准确性。不过,等你开始应用计算机语言来工作的时候,你会发现,面对不同的需求你需要一次又一次去用代码重复实现这些已经成熟的算法,而且会一次又一次陷入一些由于自己疏忽而产生的bug中。这时,你想找一种工具,已经帮你实现这些功能,你想怎么用就怎么用,同时不影响性能。你需要的就是STL, 标准模板库!西方有句谚语:不要重复发明轮子!STL几乎封装了所有的数据结构中的算法, 阅读全文

posted @ 2011-07-20 09:40 ACShiryu 阅读(1374) 评论(3) 推荐(1) 编辑

标准模板库(STL)学习指南之priority_queue优先队列
摘要:转载自CSDN博客:http://blog.csdn.net/suwei19870312/article/details/5294016priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解view plain#include<iostream>#include<algorithm>#incl 阅读全文

posted @ 2011-07-18 19:54 ACShiryu 阅读(428) 评论(0) 推荐(0) 编辑

标准模板库(STL)学习指南之map映射
摘要:转载自CSDN博客:http://blog.csdn.net/bat603/article/details/1456141Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟 阅读全文

posted @ 2011-07-18 17:34 ACShiryu 阅读(743) 评论(0) 推荐(0) 编辑

标准模板库(STL)学习指南之List链表
摘要:本文转载自天极网,原文地址:http://www.yesky.com/255/1910755.shtml.转载请注明什么是STL呢?STL就是Standard Template Library,标准模板库。这可能是一个历史上最令人兴奋的工具的最无聊的术语。从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。 STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装什麽。它被内建在你的编译器之内。因为S 阅读全文

posted @ 2011-07-16 16:25 ACShiryu 阅读(743) 评论(0) 推荐(0) 编辑