C++
文章平均质量分 82
Your_First
爱电脑,爱编程!
展开
-
STL学习记录(十一):修改类算法
STL算法在前面对于算法已经简要的说明了一下。后面几个部分我会对于算法的详细内容进行更一步的介绍。这篇博客主要记录算法中的两个主要类别修改类(可能这种区分不严谨,不要太钻牛角尖)。修改类算法修改类算法主要的特征是算法中涉及的元素的值可能会发生改变(可能是元素本身也有可能是元素的一个副本)。最为常见的修改类算法是for_each( )和transform( )。两者的主要区别是前面一个在原创 2015-07-23 09:29:59 · 414 阅读 · 0 评论 -
STL学习记录(十四):其它几种算法
其它几种算法Paritition、Heap、Min/Max在介绍前面几种算法后,剩下的几种算法将在这一部分集中介绍。Partition算法主要是根据定义的规则,将范围内的元素分为两部分。 Heap算法主要是关于堆部分的算法。而Min/Max类算法主要是关于数值部分的算法。算法说明与示例如下: 操作 说明 partition(beg,end,op) 根据op操作将[beg,end)分为原创 2015-07-31 21:27:21 · 332 阅读 · 0 评论 -
STL学习记录(十六):Queue、Priority Queue
STL中的特殊容器Queue、Priority Queue与前面的Stack一样,Queue、Priority Queue也是以容器适配器的形式实现的。Queue的特点是数据结构中的队列中的特点FIFO。主要操作 就是在队首和队尾。Priority Queue与Queue基本上是一样的,只不过在Queue上加了一个规则,第一个元素是优先级最高的元素,而不一定 是最先插入的,从这个特性看起始与堆比原创 2015-08-01 21:49:17 · 403 阅读 · 0 评论 -
STL学习记录(十三):排序类算法及基于排序的算法
排序类算法及基于排序的算法这部分主要介绍常用的排序算法和基于排序的算法。排序类算法STL中提供里提供了很多种排序算法,包括了全局排序以及部分排序。这里需要注意的是排序算法需要能够随机访问范围内的元素, 所以标准库中list、associative containers、unorder containers都不在算法支持的范围内。当然associative containers 依然可以根据key原创 2015-07-29 22:33:07 · 344 阅读 · 0 评论 -
STL学习记录(八)Sets、Multisets
STL关联容器Set、MultisetSet、Multiset简介Set和Multiset会依据一定的排序准则自动的将容器里面的元素进行排序。这也就表明关联容器与顺序容器的一个最大不同就是元素的顺序与元素插入容器的先后无关。set、multiset的不同在于前者不允许容器内部有相同的元素,而后者则是允许的。因为容器对元素进行自动排序,这就表明set、multiset中的元素类型必须是可以进原创 2015-05-22 20:30:39 · 419 阅读 · 0 评论 -
STL学习记录(五):Deque
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I原创 2015-05-14 09:26:07 · 294 阅读 · 0 评论 -
STL学习记录(六):List
STL顺序容器ListList简介List容器通过双向链表的形式来管理容器里的元素。这种方式表明他与Vector、Deque容器的不同。首先List不支持元素的随机访问,例如:你要访问第五个元素你必须先访问之前的四个。其次List的插入和移除操作更快。因为不需要移动元素它在任意位置的插入和移除操作的时间复杂度是常量。下面是List的常见操作:原创 2015-05-17 12:16:59 · 431 阅读 · 0 评论 -
STL学习记录(十):Iterator
STL学习记录(九):IteratorSTL迭代器Iterator迭代器简介迭代器Iterator是每个容器都有的。它的作用有点类型指针,标识着容器里的每一个元素。迭代器也有类型区别,不同类型的迭代器功能不同。例如排序算法中就要求迭代器的类型必须是支持随机访问的迭代器(RandomAccess Iterator)。迭代器的类型主要分为:Output Iterator、Input ite原创 2015-06-04 20:41:18 · 448 阅读 · 0 评论 -
STL学习记录(九)Maps、Multimaps
STL关联容器Map、MultimapMap、Multimap容器简介map、multimap中的元素是以一对key/value值的形式存在。容器中元素的顺序与根据自动排序准则对key值进行排序后的顺序一致。这两个容器的不同之处在于:前者key值必须唯一,不需要出现相同key值;后者则允许相同key值。这表明key值得类型必须是可以进行比较的。在使用这两个容器的时候都必须包含头文件。它们的原创 2015-05-26 21:15:49 · 443 阅读 · 0 评论 -
STL学习记录(四):Vector
STL顺序容器Vector本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用原创 2015-05-04 21:04:57 · 517 阅读 · 0 评论 -
STL学习记录(七):Forward List
STL顺序容器Forward ListForward List简介Forward List容器在c++11标准之前是没有的,Forward List形如数据结构中的单链表结构,所有它的很多特点也由此决定。比如,在任意位置的插入与删除速度都很快,不支持元素的随机访问。与List容器相比因为是链表是单向的,所有在存储方面Forward List的效率更高。Forward List的常见操作如下原创 2015-05-19 21:51:15 · 503 阅读 · 0 评论 -
STL学习记录(三):算法基础简要
STL算法基础学习简单的算法实例算法中的范围(Ranges)简单的算法实例 STL提供多种标准算法来处理容器中的数据,这些算法包括搜索、排序、拷贝、修改,重排等基本常用的操作。STL算法不是某个容器类的成员函数而是,通过迭代器操作的全局函数。这样的一个好处就是算法只需要实现一次,而不用为每个特定类型的容器都重新实现算法。它还支持用户自定义的容器类型。实例代码常用版本 :#include原创 2015-04-27 21:44:48 · 373 阅读 · 0 评论 -
STL学习记录(一):STL简介
STL简介STL(The Stadard Template Librara)是C++学习中必须掌握的库。它提供了高效率的算来解决对一堆数据的管理,它让程序员能够直接获得数据结构和算法领域改进带来的好处,而不需要程序员去直接了解这些算法到底是怎么实现的。从程序员的角度来说,它提供了一系列应对不同需求的数据集合。使用STL你就不需要再写动态数组、链表、二叉树、哈希表和各种搜索算法。 STL是基于多种结构原创 2015-04-27 21:55:13 · 465 阅读 · 0 评论 -
STL学习记录(二):迭代器简要
STL迭代器(iterator)简介迭代器(iterator)类似于指针,能够通过它访问到它所指的元素。每个容器都有一些基本的函数让你能够获得迭代器并访问容器里的元素。begin() 返回容器中第一个元素的迭代器;end() 返回容器中最后一个元素所在位置的下一个位置而不是最后一个元素的位置。另外关于迭代器 ++pos、pos++两者的效率问题中第一个操作的效率更高因为后者需要创建一个临时对象来返回原创 2015-04-27 22:05:03 · 323 阅读 · 0 评论 -
STL学习记录(十二):非修改类算法
非修改类算法顾名思义,与修改类算法相比这个类别的算法就是不会对元素的值或者元素之间的位置关系进行改变。这类算法主要就是包括:统计、最大值、最小值、查找等常见的操作。主要的算法与代码示例如下: 操作 说明 count(first,last,value) 在[first, last)中统计值等于value的元素个数 count_if(first,last,p)原创 2015-07-24 10:32:04 · 319 阅读 · 0 评论