随笔分类 - STL学习
摘要:PS:这两条习题是添加到STL的List代码实现http://www.cnblogs.com/alan-forever/archive/2012/09/12/2682437.html3.15 给List类添加splice操作。void splice( iterator position, List<Object> & lst )删除lst中的所有项,并将这些List * this中的位置position之前。lst和*this必须是不同的表,所写的例程必须是常量时间的。PS:刚开始以为O(n)是常量,最后我发现我严重的错了,之前还想逐个逐个调用inset函数,好吧,我错了。
阅读全文
摘要:队列的循环数组实现······如果按照Vector,或者List的基础上去做就不用担心队列会满····这是按照教材、《数据结构与算法分析》、《算法导论》的用数组实现的思想····比较简单······所以····所以就没有解释······ 1 #include<iostream> 2 us
阅读全文
摘要:stack容器适配器的简介见:http://www.cnblogs.com/alan-forever/archive/2012/09/16/2687480.html这份代码是用数组实现(也可以说是用vector实现,实质都一样!) 1 #include<iostream> 2 using namespace std; 3 4 template <typename Object> 5 class Stack 6 { 7 public: 8 enum { Capacity = 20 }; 9 10 Stack( ) 11 { 12 in...
阅读全文
摘要:STL中的顺序容器,还有顺序容器适配器:queu、priority_queue和stack。适配器是标准库中通用的概念,包括容器适配器、迭代器适配器和函数适配器。本质上适配器是使某一事物的行为类似另一事物的行为的一种机制。容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。默认stack基于deque容器实现。但是stack适配器所关联的基础容器可以是任意一种顺序容器类型。这份代码是用链表去实现!!!! 1 #include<iostream> 2 using namespace std; 3 4 template <typename Object>
阅读全文
摘要:《数据结构与算法分析》书本代码,书本的代码内容居然分开超多部分,看起来真得很痛苦,之前看这一章老是看到这一部分就不想看,list的实现本来就麻烦,而且分开,所以一直都是跳开。不过通过认真分析,再敲代码,一边敲代码一边理解,收获真得很不错,而且这本书的习题很赞,有很多题都是要你在程序上完善,修改、添加。好了,体外话说完。PS:这次加了两张图片!(《数据结构与算法分析》的图片,方便理解)。PS:添加了习题3.15和3.16.见:http://www.cnblogs.com/alan-forever/archive/2012/10/15/2725290.html看了这些代码有数遍之后,觉得将cons
阅读全文
摘要:《数据结构与算法分析》的代码!!!!PS:因为书本没有给clear、erase函数的实现,我也只好自己弄了个clear函数,不过erase函数不知道怎样才能弄好,迟点在改善。vector的实质也是数组,但是它的容量能动态变大,避免了溢出!!!PS:加了两条习题的内容。3.7 修改Vector类,添加索引时的边界检测功能。3.8 给Vector类添加insert和erase。还有一题未完成,是将迭代器定义为一个类,来提供严格的迭代器检验。这条题目才是真正的考验·····迟点准备做····· 1 #
阅读全文
摘要:现在对STL的学习主要是看《C++ Primer》,这本书买回来大半年,虽然很多都基本看了,但是真得真得看得不够仔细。现在重新再看多几遍。vector是一个类模板,不是数据类型。以下是C++ Primer里面的代码和一些实例说明。以后还会有vector的代码实现。 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 int main( ) 6 { 7 vector<int> v1; //v1为空 8 vector<int> v2(v1); //v2为...
阅读全文
摘要:个人觉得bitset很不错,特别是转化成二进制,还可以将0-1字符串转化成bitset,而bitset可以直接输出,还可以转化成unsigned long 类型的值。个人认为操作不需要死记硬背,要使用的时候再查吧,毕竟标准库里面的操作有很多。PS:第一次弄插图,技术不太好。要注意bitset的下标!!!!!!!看了图就会明白。 1 #include<iostream> 2 #include<string> 3 #include<bitset> 4 #include<cstddef> 5 using namespace std; 6 7 int m
阅读全文
摘要:list(链表)容器也是顺序容器的一种,支持快速插入/删除,有头插入,尾插入两种数据输入的方法。不支持下标操作!!!这里的只是基本的操作,还有一些操作可能以后会继续补充。以后会有list的代码实现!! 1 #include<iostream> 2 #include<list> 3 using namespace std; 4 5 int main( ) 6 { 7 list<int> l1; 8 list<int> l2(l1); 9 list<int> l3(10, 99);10 list<int> l4(10, 99)
阅读全文

浙公网安备 33010602011771号