欢迎来到天天文库
浏览记录
ID:56721288
大小:98.50 KB
页数:42页
时间:2020-07-06
《STL、线段树代码库.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、STL
2、 全排列函数next_permutation STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include using namespace std; 调用: next_permutation(start, end); 注意:函数要求输入的是一个升序排列的序列的头指针和尾指针. 用法: // 数组 int a[N]; sort(a, a + N); next_permutation(a, a + N); // 向量 vector ivec;
3、 sort(ivec.begin(), ivec.end()); next_permutation(ivec.begin(), ivec.end()); 例子: vector myVec; // 初始化代码 sort(myVec.begin(), myVec.end()); do { for (i = 0 ; i < size; i ++ ) cout << myVec[i] << " t " ; cout << endl; } whileSTL
4、 全排列函数next_permutat
5、ion STL 中专门用于排列的函数(可以处理存在重复数据集的排列问题) 头文件:#include using namespace std; 调用: next_permutation(start, end); 注意:函数要求输入的是一个升序排列的序列的头指针和尾指针. 用法: // 数组 int a[N]; sort(a, a + N); next_permutation(a, a + N); // 向量 vector ivec; sort(ivec.begin(), ivec
6、.end()); next_permutation(ivec.begin(), ivec.end()); 例子: vector 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()));
7、 ACM / ICPC 竞赛之STL 简介 一、关于STL STL(Standard Template Library,标准模板库)是C++ 语言标准中的重 要组成部分。STL 以模板类和模板函数的形式为程序员提供了各种数据结构和 算法的精巧实现,程序员如果能够充分地利用STL ,可以在代码空间、执行时 间和编码效率上获得极大的好处。 STL 大致可以分为三大类:算法(algorithm) 、容器 (container) 、迭代器 (iterator)。 STL 容器
8、是一些模板类,提供了多种组织数据的常用方法,例如vector(向量, 类似于数组) 、list( 列表,类似于链表) 、deque(双向队列) 、set(集合) 、 map(映象) 、stack( 栈) 、queue( 队列) 、priority_queue(优先队列) 等, 通过模板的参数我们可以指定容器中的元素类型。 STL 算法是一些模板函数,提供了相当多的有用算法和操作,从简单如 for_each (遍历)到复杂如stable_sort (稳定排序)。
9、 STL 迭代器是对C 中的指针的一般化,用来将算法和容器联系起来。几乎所有 的STL 算法都是通过迭代器来存取元素序列进行工作的,而STL 中的每一个 容器也都定义了其本身所专有的迭代器,用以存取容器中的元素。有趣的是, 普通的指针也可以像迭代器一样工作。 熟悉了STL 后,你会发现,很多功能只需要用短短的几行就可以实现了。通过 STL ,我们可以构造出优雅而且高效的代码,甚至比你自己手工实现的代码效 果还要好。 STL 的另外一个特点是,它是以源码方式
10、免费提供的,程序员不仅可以自由地 使用这些代码,也可以学习其源码,甚至按照自己的需要去修改它。 下面是用STL 写的题Ugly Numbers的代码: #include #include using namespace std; typedef pair
此文档下载收益归作者所有