我们在之前介绍过,STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分。
在前几篇文章里主要向大家介绍了几种常用的容器,它们有vector(不定长数组)、stack(栈)、queue(队列)、set(集合)、map(映射)。今天我们来介绍一下algorithm算法库里的一些常用函数。
algorithm意为'算法',是C++的标准模版库(STL)中最重要的头文件之一,提供了大量基于迭代器的非成员模板函数。
在使用algorithm里的内容时和STL容器相似地,也要加上头文件。
algorithm 算法库
头文件:#include<algorithm>
常用函数:
1.max(x,y)
返回值为x和y的最大值。
2.min(x,y)
返回值为x和y的最小值。
3.abs(x)
返回x的绝对值。x必须为整数,浮点数的绝对值使用<math.h>下的fabs()。
4.swap(x,y)
交换x和y的值。
5.reverse(it1,it2)
将数组指针在[it1,it2)之间的元素或容器的迭代器范围内的元素进行反转。
6.next_permutation(首元素地址,尾元素的下一地址)
给出一个序列在全排列的下一个序列。
int a[10] = {1,2,3}
do{
cout<<a[0]<<a[1]<<a[2]<<endl;
}while(next_permutation(a,a+3));
/*
输出:
123
132
213
231
312
321
*/
7.fill(首元素地址,尾元素的下一地址,值)
把数组或容器的某一段区间赋为某个相同的值。
fill(a,a+5,233);
//将a[0]~a[4]均赋值为233.
8.sort(首元素地址,尾元素的下一地址,比较函数(非必填) )
排序,若不填写比较函数,则默认进行递增排序。
联系客服