algorithm头文件下的常用函数
目錄
- max()和min()
- swap()
- reverse()
- next_permutation()
- fill()
- sort()
- lower_bound()和upper_bounnd()
max()和min()
max(x,y) 返回x,y中的最大值。
min(x,y) 返回x,y中的最小值。
swap()
swap(x,y)用來交換兩個數(shù)的值。
reverse()
reverse(it,it2)可以將數(shù)組指針在 [ it, it2)之間的元素或容器的迭代器在 [ it ,it2)范圍內(nèi)的元素進(jìn)行反轉(zhuǎn)。
next_permutation()
next_permutation()給出一個序列在全排列中的下一個序列。
例如 n==3時的全排列為 123 132 213 231 312 321 這樣231的下一個序列就是312.fill()
fill()可以把數(shù)組或容器中的某一段區(qū)間賦為某個相同的值。和memset不同,
這里的賦值可以是數(shù)組類型對應(yīng)范圍中的任意值。
sort()
sort詳解
lower_bound()和upper_bounnd()
lower_bound()和upper_lound()需要用在一個有序數(shù)組或容器中。
lower_bound(first,last,val)用來尋找在數(shù)組或容器的[first,last)范圍內(nèi)第一個值大于等于val的元素的位置,如果是數(shù)組,則返回該位置的指針;如果是容器,則返回該位置的迭代器。
upper_bound(first,last,val)用來尋找在數(shù)組或容器的[first,last)范圍內(nèi)第一個值大于val的元素的位置,如果是數(shù)組,則返回該位置的指針;如果是容器則返回該位置的迭代器。
顯然,如果數(shù)組或容器中沒有需要尋找的元素,則lower_bound()和upper_bound()均返回
可以插入該元素的位置的指針或迭代器(即假設(shè)存在該元素時,該元素應(yīng)當(dāng)在的位置)。
lower_bound()和upper_bound()的復(fù)雜度為 O( log(last-first) )。
如果只是想要獲得欲查元素的下標(biāo),就可以不使用臨時指針,而直接令返回值
減去首地址即可。
總結(jié)
以上是生活随笔為你收集整理的algorithm头文件下的常用函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pair的常见用法详解
- 下一篇: CodeBlocks的一些用法和常见的问