STL运用
文章平均质量分 57
AC_XXZ
努力了不一定会成功,但不努力肯定会失败
展开
-
next_permutation(自动全排列)
poj1833写了一下午,还给我PE了,吐血啊,后来田大神 next_permutation原创 2014-05-27 20:00:58 · 842 阅读 · 0 评论 -
poj2431(优先队列)
注意题目给的是到终点的距离,需要转成到起点的距离,还有就是将终点也看成是加油站,这样写起来方便很多,不必要单独考虑最后一个加油站不在终点以后的情况#include #include #include #include #include using namespace std;int N,P,L;pair d[10100];bool cmp(pair a, pair b){原创 2015-02-09 17:52:38 · 1071 阅读 · 0 评论 -
poj3253(优先队列)
#include #include #include #include #include using namespace std;int N,R;int x[50100];int main(){#ifdef xxz freopen("in.txt","r",stdin);#endif // xxz ios::sync_with_stdio(false);原创 2015-02-09 17:55:34 · 1075 阅读 · 0 评论 -
STL系列之七 快速计算x的n次幂 power()的实现
计算x的n次幂最简单直接的方法就是相乘n次,很容易写出程序:[cpp] view plaincopy//计算x^n 直接乘n次 by MoreWindows( http://blog.csdn.net/MoreWindows ) int power1(int x, unsigned int n) { int result =转载 2014-12-10 16:41:32 · 1021 阅读 · 0 评论 -
STL系列之一 deque双向队列
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存de转载 2014-12-10 16:34:21 · 717 阅读 · 0 评论 -
STL系列之四 heap 堆
下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。建转载 2014-12-10 16:36:22 · 899 阅读 · 0 评论 -
STL系列之十 全排列(百度迅雷笔试题)
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str),转载 2014-12-10 16:46:24 · 897 阅读 · 0 评论 -
STL学习之零散记录(不断更新中)
我用到什么就写什么,所以不是太注重排版,等写多了以后再整理:1:vector V,V.pop_back()弹出最后一个元素2:优先级队列不能设置迭代器,因为没有3:vector >::const_iterator q = vec.begin(),里面放pair4: #include //位运算 string str2(str,0,8);//将s原创 2014-12-08 19:24:55 · 1076 阅读 · 2 评论 -
priority_queue
优先队列用法在优先队列中,优先级高的元素先出队列。标准库默认使用元素类型的优先队列的第一种用法,也是最常用的用法: priority_queueint> qi; 通过故示例1中输出结果为:9 6 5 3 2第二种方法:在示例1中,如果我们要把元素从小到大输出怎么办呢?这时我们可以传入一个比较函数,使用functional.h函数对象作为比较函转载 2014-08-12 19:45:13 · 676 阅读 · 0 评论 -
最小的n个和(STL堆的运用)
最小的n个和Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 109(26 users)Total Accepted: 22(19 users)Rating: Special Judge: NoDescription给定A原创 2014-11-03 20:59:20 · 1395 阅读 · 0 评论 -
从n个数中提取最小的m个数的算法
从n个数中提取最小的m个数的算法 2007-02-10 23:58:45分类:经常在网上看到有人讨论这个问题:如何高效地从n个数中提取最小的m个数?或者是其他类似的问题,今天我也简单地分析一下。具体问题具体分析,既然这个题目只要求我们找出这m个数,没有要求对其进行排序,所以负担也就轻了,相应地也能采用更高效的数转载 2014-11-01 22:59:55 · 2355 阅读 · 0 评论 -
hdu 4585 Shaolin 2013 ACM-ICPC杭州赛区全国邀请赛——题目重现
题意大意:很多人想进少林寺,少林寺最开始只有一个和尚,每个人有有一个武力值,若这个人想进少林,必须和比他先进去的人比武并且武力值最接近他的比武,如果有相同的则选择武力值比他小的,问当他进去的时候要和哪个和尚比武。 思路:正常情况暴力,n=100000 n*n的操作肯定不行的,最少要优化到nlogn,联想到map,map里的数会自动排序,它是由红黑树实现的,能实原创 2014-10-02 12:51:16 · 1207 阅读 · 0 评论 -
STL函数模板(即算法)一览
查找算法adjacent_find:找出一个串中第一个不符合次序的地方find,find_if:找出第一个符合条件的元素find_first_of:在一个串中寻找第一个与另一个串中任意一个元素相等的元素search_n:在一个串中寻找一个元素第n次出现的地方count,count_if:一个串中符合条件的元素个数mismatch:找出两个串第一个不相等的地方equa原创 2014-08-17 20:05:35 · 827 阅读 · 0 评论 -
ACdream区域赛指导赛之手速赛系列(4)
点击打开题目链接原创 2014-08-10 14:54:17 · 752 阅读 · 0 评论 -
stack,queue, priority_queue
STL 中栈的使用方法(stack)#include stack>基本操作:push(x) 将x加入栈中,即入栈操作pop() 出栈操作(删除栈顶),只是出栈,没有返回值top() 返回第一个元素(栈顶元素)size() 返回栈中的元素个数empty() 当栈为空时,返回 trueSTL 中队列的使用(queue)#i转载 2014-08-12 19:41:45 · 729 阅读 · 0 评论 -
Vector
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=vec.begin();i原创 2014-08-12 20:41:16 · 697 阅读 · 0 评论 -
map用法
1.map基本用法:样例代码:#include#include#include#include#include#include#includeusing namespace std;int main(){map mymap;map::iterator it;mymap['b'] = 100;//这表示map里存的danmyma转载 2014-06-18 18:20:53 · 880 阅读 · 0 评论 -
STL源码剖析之【二分查找】
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)算法返回一个非递减序列[first, last)中的第一个大于等于值val的位置。 ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val原创 2015-06-09 15:06:43 · 1031 阅读 · 0 评论