欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 中 <iterator> <functional> <numeric> 庫(kù)好用的函數(shù)詳解

 更新時(shí)間:2023年11月17日 09:48:43   作者:RainPPR  
這篇文章主要介紹了C++ 中 <iterator> <functional> <numeric> 庫(kù)好用的函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

<iterator>

簡(jiǎn)述:迭代器省代碼用的。

std::advance

記憶方法:advance-前進(jìn)。

形如:advance(it, step),表示 it 迭代器自增 step 步。

實(shí)現(xiàn)類似于:

function advance(&it, n):
	while n > 0:
		--n
		++it
	while n < 0:
		++n
		--it

function advance(&it, n):
	it += n

std::next & std::prev

記憶方法:自己?jiǎn)栍⒄Z(yǔ)老師。

形如 next(it, n) 及 prev(it, n),默認(rèn) n = 1,表示迭代器前移、后移 n 位。

為 std::advance 的變體,區(qū)別在于返回了迭代器而傳入迭代器不改變。

實(shí)現(xiàn)類似于:

function next(it, n = 1): -> iterator
	std::advance(it, n)
	return it
function prev(it, n = 1): -> iterator
	std::advance(it, -n)
	return it

std::distance

記憶方法:distance-距離。

形如:distance(st, ed),表示迭代器 st 和 ed 之間的距離(從 st 跳到 ed 的距離)。

實(shí)現(xiàn)類似于:

function distance(first, last):
	result := 0
	while first <> last:
		++first
		++result
	return result

function distance(first, last):
	return last - first

<functional>

簡(jiǎn)述:不用自己寫(xiě) lambda 了。

函數(shù)表示
2.3 算術(shù)運(yùn)算
plus實(shí)現(xiàn) x + y 的函數(shù)對(duì)象 (類模板)
minus實(shí)現(xiàn) x - y 的函數(shù)對(duì)象 (類模板)
multiplies實(shí)現(xiàn) x * y 的函數(shù)對(duì)象 (類模板)
divides實(shí)現(xiàn) x / y 的函數(shù)對(duì)象 (類模板)
modulus實(shí)現(xiàn) x % y 的函數(shù)對(duì)象 (類模板)
negate實(shí)現(xiàn) -x 的函數(shù)對(duì)象 (類模板)
2.4 比較
equal_to實(shí)現(xiàn) x == y 的函數(shù)對(duì)象 (類模板)
not_equal_to實(shí)現(xiàn) x != y 的函數(shù)對(duì)象 (類模板)
greater實(shí)現(xiàn) x > y 的函數(shù)對(duì)象 (類模板)
less實(shí)現(xiàn) x < y 的函數(shù)對(duì)象 (類模板)
greater_equal實(shí)現(xiàn) x >= y 的函數(shù)對(duì)象 (類模板)
less_equal實(shí)現(xiàn) x <= y 的函數(shù)對(duì)象 (類模板)
2.6 邏輯運(yùn)算
logical_and實(shí)現(xiàn) x && y 的函數(shù)對(duì)象 (類模板)
logical_or實(shí)現(xiàn) x || y 的函數(shù)對(duì)象 (類模板)
logical_not實(shí)現(xiàn) !x 的函數(shù)對(duì)象 (類模板)
2.7 逐位運(yùn)算
bit_and實(shí)現(xiàn) x & y 的函數(shù)對(duì)象 (類模板)
bit_or實(shí)現(xiàn) x | y 的函數(shù)對(duì)象 (類模板)
bit_xor實(shí)現(xiàn) x ^ y 的函數(shù)對(duì)象 (類模板)
bit_not實(shí)現(xiàn) ~x 的函數(shù)對(duì)象 (類模板)

<numeric>

簡(jiǎn)述:奇奇怪怪的簡(jiǎn)化程序?qū)懛ǖ膸?kù)。

std::iota

記憶方法:increase-(output)->ta。

形如 iota(begin, end, value),表示 [begin, end) 從 value 開(kāi)始,遞增填充。

實(shí)現(xiàn)類似于:

function iota(first, last, value):
	while first <> last:
		[first] := value
		++first
		++value

std::accumulate

記憶方法:accumulate-積累。

形如 accumulate(begin, end, value),表示 [begin, end) 從 value 開(kāi)始,求和。

實(shí)現(xiàn)類似于:

function accumulate(first, last, init): -> type
	while first <> last:
		init := init + [first]
		++first
	return init

形如 accumulate(begin, end, value, fun),表示 [begin, end) 從 value 開(kāi)始,對(duì) fun 函數(shù)執(zhí)行。

實(shí)現(xiàn)類似于:

function accumulate(first, last, init, op): -> type
	while first <> last:
		init := op(init, [first])
		++first
	return init

std::partial_sum

記憶方法:前綴那一部分求和

形如:partial_sum(begin, end, dist),表示 [begin, end) 的前綴和放在 dist 開(kāi)始的位置,返回終止迭代器。

實(shí)現(xiàn)類似于:

function partial_sum(first, last, d_first): -> iterator
	if first == last:
		return d_first
	[d_first] := [first]
	sum := [first]
	while ++first <> last:
		sum := sum + [first]
		[++d_first] := sum
	return ++d_first

形如:partial_sum(begin, end, dist),表示求 [begin, end) 的 fun 函數(shù)前綴,放在 dist開(kāi)始的位置,返回終止迭代器。

實(shí)現(xiàn)類似于:

function partial_sum(first, last, d_first, op): -> iterator
	if first == last:
		return d_first
	sum := [first]
	[d_first] := sum
	while ++first <> last:
		sum := op(sum, [first])
		[++d_first] := sum
	return ++d_first

std::adjacent_difference

記憶方法:adjacent-相鄰的,difference-差值。

形如:adjacent_difference(begin, end, dist),表示 [begin, end) 對(duì)相鄰兩項(xiàng)的差值,放在 dist + 1 開(kāi)始的位置,返回終止迭代器。

實(shí)現(xiàn)類似于:

function adjacent_difference(first, last, d_first): -> iterator
	if first == last:
		return d_first
	acc := [first]
	[d_first] := acc
	while ++first <> last:
		val := [first]
		[++d_first] := val - acc
		acc := val
	return ++d_first

形如:adjacent_difference(begin, end, dist, op),表示 [begin, end) 對(duì)相鄰兩項(xiàng)的 op 函數(shù)值,放在 dist + 1 開(kāi)始的位置,返回終止迭代器。

實(shí)現(xiàn)類似于:

function adjacent_difference(first, last, d_first): -> iterator
	if first == last:
		return d_first
	acc := [first]
	[d_first] := acc
	while ++first <> last:
		val := [first]
		[++d_first] := op(val, acc)
		acc := val
	return ++d_first

到此這篇關(guān)于C++ 中 &lt;iterator&gt; &lt;functional&gt; &lt;numeric&gt; 庫(kù)好用的函數(shù)的文章就介紹到這了,更多相關(guān)C++ &lt;iterator&gt; &lt;functional&gt; &lt;numeric&gt; 庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++ 數(shù)據(jù)共享與保護(hù)

    C++ 數(shù)據(jù)共享與保護(hù)

    C++ 數(shù)據(jù)共享與保護(hù)的基本概念,包括標(biāo)識(shí)符的作用域與可見(jiàn)性,對(duì)象生存期,類數(shù)據(jù)的共享,類共享數(shù)據(jù)的保護(hù)。本篇文章就介紹C++ 數(shù)據(jù)共享與保護(hù),需要的朋友可以參考一下
    2021-10-10
  • C++20 統(tǒng)一容器擦除:std::erase 和 std::eraseif的實(shí)現(xiàn)

    C++20 統(tǒng)一容器擦除:std::erase 和 std::eraseif的實(shí)現(xiàn)

    本文主要介紹了C++20 統(tǒng)一容器擦除:std::erase 和 std::erase_if的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 解析c++中的默認(rèn)operator=操作的詳解

    解析c++中的默認(rèn)operator=操作的詳解

    本篇文章是對(duì)c++中的默認(rèn)operator=操作的應(yīng)用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • C++中可以接受任意多個(gè)參數(shù)的函數(shù)定義方法(詳解)

    C++中可以接受任意多個(gè)參數(shù)的函數(shù)定義方法(詳解)

    下面小編就為大家?guī)?lái)一篇C++中可以接受任意多個(gè)參數(shù)的函數(shù)定義方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • C++多線程互斥鎖和條件變量的詳解

    C++多線程互斥鎖和條件變量的詳解

    這篇文章主要為大家詳細(xì)介紹了C++多線程互斥鎖和條件變量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明

    對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明

    下面小編就為大家?guī)?lái)一篇對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • C語(yǔ)言 圖文并茂詳解程序編譯過(guò)程

    C語(yǔ)言 圖文并茂詳解程序編譯過(guò)程

    C語(yǔ)言是一種編譯型語(yǔ)言,需要把源文件進(jìn)行編譯之后才能運(yùn)行,它的編譯過(guò)程是:預(yù)處理:展開(kāi)頭文件、宏替換,去掉注釋,條件編譯;編譯:檢查語(yǔ)法,生成匯編;匯編:把生成的匯編文件匯編成機(jī)器碼;鏈接:鏈接到一起生成可執(zhí)行程序
    2022-04-04
  • 詳解C語(yǔ)言的void*空指針

    詳解C語(yǔ)言的void*空指針

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的void*空指針,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C語(yǔ)言制作簡(jiǎn)易金山打字通功能的代碼

    C語(yǔ)言制作簡(jiǎn)易金山打字通功能的代碼

    今天小編就為大家分享一篇關(guān)于C語(yǔ)言制作簡(jiǎn)易金山打字通功能的代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C語(yǔ)言結(jié)構(gòu)體成員賦值的深拷貝與淺拷貝詳解

    C語(yǔ)言結(jié)構(gòu)體成員賦值的深拷貝與淺拷貝詳解

    C語(yǔ)言中的淺拷貝是指在拷貝過(guò)程中,對(duì)于指針型成員變量只拷貝指針本身,而不拷貝指針?biāo)赶虻哪繕?biāo),它按字節(jié)復(fù)制的。深拷貝除了拷貝其成員本身的值之外,還拷貝成員指向的動(dòng)態(tài)內(nèi)存區(qū)域內(nèi)容。本文將通過(guò)示例和大家詳細(xì)說(shuō)說(shuō)C語(yǔ)言的深拷貝與淺拷貝,希望對(duì)你有所幫助
    2022-09-09

最新評(píng)論