STL原始碼剖析學習十二 演算法之數值演算法

2022-08-18 16:45:09 字數 1662 閱讀 1372

相關函式都包含在中

先列個例項

#include#include

#include

#include

#include

#include

using

namespace

std;

void

main()

; vector

iv(ia, ia+5

);

cout

<0)

<0, minus())

<10)

<10, minus(), plus())

ostream_iterator oite(cout, "");

partial_sum(iv.begin(), iv.end(), oite);

cout

());

cout

cout

());

cout

//coutcout<())int n = 3;

//iota(iv.begin(), iv.end(), n);

//for (int i=0; i//

coutpause");

}

accumulate(first, last, init [,binary_op])

return

init

}

adjacent_difference(first, last, result [,binary_op])

__adjacent_difference(first, last, result, t*)

return ++result;

}

inner_product(first1, last1, first2, init [, binary_op1, binary_op2])

return

init;

}

partial_sum(first, last, result [,binary_op])

if(first ==last)

return

result;

*result = *first; //

result開始的迭代器放置結果

return

__partial_sum(first, last, result, value_type(first) [,binary_op]);

}__partial_sum(first, last, result, t*)

return ++result;

}

pow為sgi專屬,不在stl標準之列,對自己進行某種運算n次,預設為冪運算

iota用來改變某個特定區間的內容,使其每個元素從指定的value開始,呈現遞增的狀態

STL原始碼剖析之數值演算法

一 accumulate 作用 初始化init,對區間 first,last 的迭代器i執行init i或init binaryop init,i template 版本1,用來計算init和 first,last 區間元素的總和 tp accumulate inputiterator first,...

STL之deque原始碼剖析

deque是一種那個雙向開口的連續線性空間,其頭尾端做元素的插入和刪除效率比vector效率高很多。deque和vector的最大差異,一在於deque允許常數時間內對頭尾端進行元素插入或移除操作,二在於deque沒有所謂容量概念,因為它是動態地分段連續空間組合而成,隨時可以增加一段新的空間並鏈結起...

STL原始碼剖析之vector

向量vector 1.vector概述 vector的資料安排以及操作方式,與array非常相似。兩者的唯一差別在於空間的運用的靈活性。array是靜態空間,一旦配置了就不能改變 vector是動態空間,隨著元素的加入,它的內部機制會自行擴充空間以容納新元素。vector的實現技術,關鍵在於其對大小...