学长说现在基本上可以开始学习STL中一些标准模板了,今天先总结一下 队列、栈、优先队列
1、队列(queue)
先进先出原则,头文件#include ,定义结构queue名称;queueq、queueq等;
如:
struct node
{
int x;
}f;
queueq;//结构体类型队列
q.push(f) //将f压入队列的尾部
node t...
分类:
其他好文 时间:
2014-06-28 08:36:49
阅读次数:
162
说明:本文全文转载而来,原文链接:http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177644.htmlC++ Queues(队列)C++队列是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。1.back() 返回一个引用...
分类:
编程语言 时间:
2014-06-27 11:17:33
阅读次数:
345
STL对比解说——关联容器1. 概述 关联容器会根据某种准则自动排序容器中元素。operator namespace std { template , //默认使用小于,可以自己提供排序准则 typename Allocator = allocator > ...
分类:
其他好文 时间:
2014-06-27 11:00:22
阅读次数:
235
堆(heap)是一种非常重要的数据结构(这里我们讨论的是二叉堆),它是一棵满足特定条件的完全二叉树,堆的定义如下:
堆是一棵树完全二叉树,对于该完全二叉树中的每一个结点x,其关键字大于等于(或小于等于)其左右孩子结点,而其左右子树均为一个二叉堆。...
分类:
其他好文 时间:
2014-06-27 08:41:58
阅读次数:
225
在前面的文章STL之heap相关操作算法中介绍了堆的相关操作算法,由于堆的注意主要作用是用于排序,我们也知道堆排序的时间复杂度为o(nlogn),是一种不稳定的排序算法,利用堆这一数据结构,我们可以很快第获取一个大数据中最大(或最小)的k个数。同时,上篇文章中,也提出了相关heap算法的一些问题...
分类:
其他好文 时间:
2014-06-27 08:16:59
阅读次数:
171
??
transform()的第一版本以仿函数op作用于[first,last)中的每一个元素身上,并以其结果产生出一个新序列。第二版本以仿函数binary_op作用于一双元素身上(其中一个元素来自[first1,last1),另一个元素来自“从first2开始的序列”),并以其结果产生出一个新序列。如果第二序列的元素少于第一序列,执行结果未可预期。
//版本一
template
Out...
分类:
其他好文 时间:
2014-06-26 13:39:18
阅读次数:
198
对于接触过数据结构的人来说,队列并不陌生,它是一种FIFO(first in first out)的数据结构。与栈相比,队列的不同之处在于:(1)队列是一种先进先出的数据结构,而栈则是一种后进先出的数据结构;(2)队列支持首尾两端的访问操作,而栈只支持一端(即顶端)的访问操作;(3)队列从队尾插入,从队首弹出;而栈的插入和弹出都位于栈顶。...
分类:
其他好文 时间:
2014-06-26 13:34:53
阅读次数:
249
动态规划poj3903详解,STL 的lower_bound运用...
分类:
其他好文 时间:
2014-06-26 10:25:10
阅读次数:
660
对任一容器C,代码if (c.size()
== 0)本质上与if (c.empty())是等价的。既然如此,为什么要偏向于某一种形式呢,尤其是考虑到empty()通常被实现为内联函数,并且它所做的仅仅是返回size()是否为0。
理由很简单:empty()对所有的标准容器都是常数时间操作,而对一些list实现,size()耗费线性时间。
原因:在所有的标准容器中,只有l...
分类:
其他好文 时间:
2014-06-26 08:10:47
阅读次数:
266