永夜初晗凝碧天

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

导航

2011年7月20日 #

标准模板库(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 阅读(2228) 评论(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 阅读(528) 评论(0) 推荐(0) 编辑

标准模板库(STL)学习指南之sort排序

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

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