随笔分类 -  STL

1
摘要: 阅读全文
posted @ 2017-02-15 02:13 柳下_MBX 阅读(125) 评论(0) 推荐(0)
摘要:分段连续 阅读全文
posted @ 2017-02-15 00:59 柳下_MBX 阅读(138) 评论(0) 推荐(0)
摘要:vector身为一个动态数组,每次以空间不够的时候会以2倍的倍数增加,而且每次扩充的时候分为3部,分配内存,拷贝数据,释放内存 vector内部有两个成员变量,begin,finish ,endcatagory,分别指向数据头尾合容器末尾,相应的内部成员的内部实现也都是通过这3个类成员 看下面额ve 阅读全文
posted @ 2017-02-12 20:49 柳下_MBX 阅读(1024) 评论(0) 推荐(0)
摘要:iterator我前面写过是作为algorithm和container之间的一个桥梁,algorithm进程操作的时候向iterator进行提问,iterator并对提问进行了回答,其中主要就是回答5个特性 1:iterator_category:迭代器移动性质,比如说有的迭代器只能向前移动++。有 阅读全文
posted @ 2017-02-12 20:40 柳下_MBX 阅读(339) 评论(0) 推荐(0)
摘要:首先声明,下面的讲解都是针对GCC2.9,std::alloc 通过下面的源代码大家可以看到list类的内部成员是一个node,而他的类型是linktype,前面的typedef里面有介绍是一个指针,所以,当我们创建一个对象的时候,他的大小是4,只有一个指针,而listnode是一个结构体,void 阅读全文
posted @ 2017-02-11 19:42 柳下_MBX 阅读(1947) 评论(0) 推荐(0)
摘要:我们在c++中创建数组通常使用new来分配我们需要的内存大小,之后通过delete进行释放内存 但是我们调用new的时候,通过调用的是operator new,二operator new调用的是malloc,所以我们说new的本质其实就是malloc,只不过我们看不到而已,同样,delete调用op 阅读全文
posted @ 2017-02-11 17:54 柳下_MBX 阅读(509) 评论(0) 推荐(0)
摘要:OOP面向对象编程 GP泛型编程(generic programming) 两者的主要区别就是OOP将数据和对数据的操作放在一起, GP就是将数据和操作独立开来 GP: 数据就是container进行存储,操作就是函数,也就是最数据操作的算法,container和algorithn都可以各自闭门造车 阅读全文
posted @ 2017-02-11 13:21 柳下_MBX 阅读(340) 评论(0) 推荐(0)
摘要:从上面这个程序可以看出,我们这里手动使用了分配器,分配器有很多种类,有std::,还有非std::,也就是上面的__gnu_cxx下面的,我们在使用容器的时候不关心我们使用什么分配器,也不关心我们如何分配内存,分配多大的内存,这些事os自己的事情,当然我们也可以指定我们使用什么分配器,为我们的容器指 阅读全文
posted @ 2017-02-11 11:52 柳下_MBX 阅读(244) 评论(0) 推荐(0)
摘要:multiset(RB-TREE) multimap(RB-TREE) unordered_multiset(HASH_TABLE) unordered_multimap(HASH_TABLE) 阅读全文
posted @ 2017-02-11 11:17 柳下_MBX 阅读(196) 评论(0) 推荐(0)
摘要:vector::erase():从指定容器删除指定位置的元素或某段范围内的元素 vector::erase()方法有两种重载形式 如下: iterator erase( iterator _Where); 1.iterator erase( iterator _First, iterator _La 阅读全文
posted @ 2017-02-10 22:55 柳下_MBX 阅读(562) 评论(0) 推荐(0)
摘要:例子需要包含头文件 #include <vector> #include <algorithm> #include <functional> bind1st和bind2nd函数用于将一个二元函数对象(binary functor,bf)转换成一元函数对象(unary functor,uf)。为了达到 阅读全文
posted @ 2017-02-10 22:26 柳下_MBX 阅读(342) 评论(0) 推荐(0)
摘要:当将arr。ereas注释保留 remove_if()类似于partition(), 但有两点不同: 1) 它们使用的谓词条件刚好相反. 2) remove_if只强调前面部分(第二部分不再需要了)remove_if()以线性时间(linear time)运行.remove_if()不能用于关联容器 阅读全文
posted @ 2017-02-10 22:18 柳下_MBX 阅读(585) 评论(0) 推荐(0)
摘要:stl具有上面6大部件 容器是存储数据的,原理主要是模板,容器只是负责存储数据,并不关心内存的存储情况,所以出现了分配器,分配器主要是负责为容器分配内存的,对于数据的操作被封装为一个个函数,也就是算法,算法就是利用一些数据结构实现对数据的各种操作,算法和容器的连接就是通过迭代器实现的,迭代器实质就是 阅读全文
posted @ 2017-02-10 13:04 柳下_MBX 阅读(488) 评论(0) 推荐(0)
摘要:产生冠军Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11807Accepted Submission(s): 5485Problem Descr... 阅读全文
posted @ 2015-09-08 20:39 柳下_MBX 阅读(256) 评论(0) 推荐(0)
摘要:今天细致的学习了map和set容器的用法和功能,终于感受到了自己之前对stl的认识还是太少太浅薄了今天我来总结一下答题的框架容器首先分为关联式容器和序列式容器,简单的是序列式容器,我先说一下序列式容器,序列式容器其实说白了就是简单的链表的实现,内部查找的顺序都是按照链表的顺序结构来查找删除和实现的,... 阅读全文
posted @ 2015-09-08 20:19 柳下_MBX 阅读(185) 评论(0) 推荐(0)
摘要:一、关于map的介绍map是STL的 一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键 字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红... 阅读全文
posted @ 2015-09-08 20:08 柳下_MBX 阅读(387) 评论(0) 推荐(1)
摘要:最近做了很多题型,都是用简单的STL就解决了,深刻的感觉到STL的伟大力量,但是本人在遇到问题的时候还是喜欢用常规的算法去解决问题,脑袋笨没办法,有时候根本想不到用STL去解决一些问题往往都是砍了网上大牛的报告草恍然大悟,看来是时候对STL 的各种概念有一个慧聪分的理解了。下面总结了set的用法,... 阅读全文
posted @ 2015-09-08 18:57 柳下_MBX 阅读(192) 评论(0) 推荐(0)
摘要:J -Justice LeagueTime Limit:1000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64uSubmitStatusPracticeHDU 1941DescriptionThirty five years ago, a gro... 阅读全文
posted @ 2015-07-26 19:13 柳下_MBX 阅读(433) 评论(0) 推荐(0)
摘要:最小的n个和Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 129(37 users)Total Accepted: 35(29 users)Rating: Special Judge: NoDescription给定A、B两个数列,各包含... 阅读全文
posted @ 2015-04-13 20:10 柳下_MBX 阅读(293) 评论(0) 推荐(0)
摘要:STL中,有很多的排序函数模板供我们调用,省去我们自己编写一些排序过程的麻烦。本文是一篇关于STL中堆排序的一个介绍。 本文涉及的几个函数如下:make_heap(), push_heap(), pop_heap(), is_heap(), sort_heap()。其中make_heap()用于构建... 阅读全文
posted @ 2015-04-13 19:34 柳下_MBX 阅读(680) 评论(0) 推荐(0)

1