我們在之前介紹過(guò),STL可分為容器(containers)、迭代器(iterators)、空間配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函數(functors)六個(gè)部分。
在前幾篇文章里主要向大家介紹了幾種常用的容器,它們有vector(不定長(cháng)數組)、stack(棧)、queue(隊列)、set(集合)、map(映射)。今天我們來(lái)介紹一下algorithm算法庫里的一些常用函數。
algorithm意為'算法',是C++的標準模版庫(STL)中最重要的頭文件之一,提供了大量基于迭代器的非成員模板函數。
在使用algorithm里的內容時(shí)和STL容器相似地,也要加上頭文件。
algorithm 算法庫
頭文件:#include<algorithm>
常用函數:
1.max(x,y)
返回值為x和y的最大值。
2.min(x,y)
返回值為x和y的最小值。
3.abs(x)
返回x的絕對值。x必須為整數,浮點(diǎn)數的絕對值使用<math.h>下的fabs()。
4.swap(x,y)
交換x和y的值。
5.reverse(it1,it2)
將數組指針在[it1,it2)之間的元素或容器的迭代器范圍內的元素進(jìn)行反轉。
6.next_permutation(首元素地址,尾元素的下一地址)
給出一個(gè)序列在全排列的下一個(gè)序列。
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(首元素地址,尾元素的下一地址,值)
把數組或容器的某一段區間賦為某個(gè)相同的值。
fill(a,a+5,233);
//將a[0]~a[4]均賦值為233.
8.sort(首元素地址,尾元素的下一地址,比較函數(非必填) )
排序,若不填寫(xiě)比較函數,則默認進(jìn)行遞增排序。
聯(lián)系客服