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

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

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

<iterator>

簡述:迭代器省代碼用的。

std::advance

記憶方法:advance-前進。

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

實現(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

記憶方法:自己問英語老師。

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

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

實現(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 的距離)。

實現(xiàn)類似于:

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

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

<functional>

簡述:不用自己寫 lambda 了。

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

<numeric>

簡述:奇奇怪怪的簡化程序寫法的庫。

std::iota

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

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

實現(xiàn)類似于:

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

std::accumulate

記憶方法:accumulate-積累。

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

實現(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 開始,對 fun 函數(shù)執(zhí)行。

實現(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 開始的位置,返回終止迭代器。

實現(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開始的位置,返回終止迭代器。

實現(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) 對相鄰兩項的差值,放在 dist + 1 開始的位置,返回終止迭代器。

實現(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) 對相鄰兩項的 op 函數(shù)值,放在 dist + 1 開始的位置,返回終止迭代器。

實現(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

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

相關文章

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

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

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

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

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

    解析c++中的默認operator=操作的詳解

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

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

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

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

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

    對C++默認構造函數(shù)的一點重要說明

    下面小編就為大家?guī)硪黄獙++默認構造函數(shù)的一點重要說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • C語言 圖文并茂詳解程序編譯過程

    C語言 圖文并茂詳解程序編譯過程

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

    詳解C語言的void*空指針

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

    C語言制作簡易金山打字通功能的代碼

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

    C語言結構體成員賦值的深拷貝與淺拷貝詳解

    C語言中的淺拷貝是指在拷貝過程中,對于指針型成員變量只拷貝指針本身,而不拷貝指針所指向的目標,它按字節(jié)復制的。深拷貝除了拷貝其成員本身的值之外,還拷貝成員指向的動態(tài)內存區(qū)域內容。本文將通過示例和大家詳細說說C語言的深拷貝與淺拷貝,希望對你有所幫助
    2022-09-09

最新評論