STL
来源:互联网 发布:ubuntu 安装类型 win7 编辑:程序博客网 时间:2024/04/27 21:48
|全排列函数next_permutation
STL中专门用于排列的函数(可以处理存在重复数据集的排列问题)
头文件:#include <algorithm> using namespace std;
调用:next_permutation(start, end);
注意:函数要求输入的是一个升序排列的序列的头指针和尾指针.
例子:
vector<int> myVec;
sort(myVec.begin(),myVec.end());
do{
for (i = 0 ;i < size;i ++ ) cout <<myVec[i] << " /t " ;
cout << endl;
}while (next_permutation(myVec.begin(),myVec.end()));
ACM/ICPC竞赛之STL--pair
STL的<utility>头文件中描述了一个看上去非常简单的模板类pair,
除了直接定义一个pair对象外,如果需要即时生成一个pair 对象,也可以调用在<utility>中定义的一个模板函数:make_pair。make_pair需要两个参数,分别为元素对的首元素和尾元素。
ACM/ICPC竞赛之STL--iterator 简介
iterator(迭代器)是用于访问容器中元素的指示器,从这个意义上说,
iterator(迭代器)相当于数据结构中所说的“遍历指针”,也可以把
iterator(迭代器)看作是一种泛化的指针。
ACM/ICPC竞赛之STL--stack/queue
3、priority_queue
priority_queue(优先队列)。默认容器为vector,默认算子为less,即小的往前排,大的往后排(出队时序列尾的元素出队)。
定义priority_queue对象的示例代码如下:
priority_queue<int> q1;
priority_queue< pair<int, int> >q2; //注意在两个尖括号之间一定要留空格。
priority_queue<int, vector<int>,greater<int> > q3; //定义小的先出队
(对less算子,调用x<y,对greater 算子,调用x>y)。
ACM/ICPC竞赛之STL--map
在STL的头文件<map>中定义了模板类map和multimap,用有序二叉树来存贮类型为pair<constKey, T>的元素对序列。序列中的元素以const Key部分作为标识,map中所有元素的Key 值都必须是唯一的,multimap 则允许有重复的Key值。
2、向map中插入元素对,有多种方法,例如:
m[key] = value;
[key]操作是map很有特色的操作,如果在map 中存在键值为key 的元素对,则返回该元素对的值域部分,否则将会创建一个键值为key的元素对,值域为默认值。所以可以用该操作向map 中插入元素对或修改已经存在的元素对的值域部分。
m.insert( make_pair(key, value) );
3、查找元素对,例如:int i = m[key];
要注意的是,当与该键值相匹配的元素对不存在时,会创建键值为key的元素对。
map<string, int>::iterator it =m.find(key);
如果map中存在与key 相匹配的键值时,find操作将返回指向该元素对的迭代器,否则,返回的迭代器等于map 的end()。
4、删除元素对,例如:
m.erase(key);
删除与指定key键值相匹配的元素对,并返回被删除的元素的个数。
m.erase(it);
删除由it所指定的元素对,并返回指向下一个元素对的迭代器。
示例程序之二,min_element/max_element,找出容器中的最小/最大值:
vector<int>::iterator min_it =min_element(L.begin(),L.end());
vector<int>::iterator max_it =max_element(L.begin(),L.end());
cout << "Min is " <<*min_it << endl;
cout << "Max is " <<*max_it << endl;
2. binary_search()
bool binary_search(ForwardIterator first,ForwardIterator
last, const LessThanComparable& value);
在[first,last)中查找value,如果找到返回Ture,否则返回False
二分检索,复杂度O(log(last-first))
itr upper_bound(first, last, value, cmp);
//itr指向大于value 的第一个值(或容器末尾)
itr lower_bound(first, last, value, cmp);
//itr指向不小于valude 的第一个值(或容器末尾)
- stl
- stl
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- stl
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- 常用网址mark
- pyqt事件循环
- p122 第三章 第20题 潘璠
- 关于WSSE验证-- 一种验证用户的方法
- 打开android设备系统调试
- STL
- Linux下Gcc生成和使用静态库和动态库详解
- iOS中///快速添加方法注释插件
- IIS发布问题
- lstrcpy、strcpy、_tcscpy、wcscpy (LPCTSTR中的C代表const,lstrcpy strcpy 区别 )
- ubuntu 13.04 编译 安装 升级 gcc 4.9.0 address sanitizer
- 即时聊天表情功能的实现
- windows下还是 乌龟(TortoiseGit)好用
- easyui datagrid editor的textarea不会自动换行?