C++ 中 <iterator> <functional> <numeric> 库好用的函数
C++ 中 库好用的函数泰裤辣!
简述:迭代器省代码用的。
std::advance
记忆方法:advance-前进。
形如:advance(it, step),表示 it 迭代器自增 step 步。
实现类似于:
function advance(&it, n):
while n > 0:
--n
++it
while n < 0:
++n
--it或
function advance(&it, n):
it += nstd::next & std::prev
记忆方法:自己问英语老师。
形如 next(it, n) 及 prev(it, n),默认 n = 1,表示迭代器前移、后移 n 位。
为 std::advance 的变体,区别在于返回了迭代器而传入迭代器不改变。
实现类似于:
function next(it, n = 1): -> iterator
std::advance(it, n)
return it
function prev(it, n = 1): -> iterator
std::advance(it, -n)
return itstd::distance
记忆方法:distance-距离。
形如:distance(st, ed),表示迭代器 st 和 ed 之间的距离(从 st 跳到 ed 的距离)。
实现类似于:
function distance(first, last):
result := 0
while first <> last:
++first
++result
return result或
function distance(first, last):
return last - first
简述:不用自己写 lambda 了。
函数表示2.3 算术运算plus实现 x + y 的函数对象 (类模板)minus实现 x - y 的函数对象 (类模板)multiplies实现 x * y 的函数对象 (类模板)divides实现 x / y 的函数对象 (类模板)modulus实现 x % y 的函数对象 (类模板)negate实现 -x 的函数对象 (类模板)2.4 比较equal_to实现 x == y 的函数对象 (类模板)not_equal_to实现 x != y 的函数对象 (类模板)greater实现 x > y 的函数对象 (类模板)less实现 x < y 的函数对象 (类模板)greater_equal实现 x >= y 的函数对象 (类模板)less_equal实现 x ta。</p>形如 iota(begin, end, value),表示 [begin, end) 从 value 开始,递增填充。
实现类似于:
function iota(first, last, value):
while first <> last:
:= value
++first
++valuestd::accumulate
记忆方法:accumulate-积累。
形如 accumulate(begin, end, value),表示 [begin, end) 从 value 开始,求和。
实现类似于:
function accumulate(first, last, init): -> type
while first <> last:
init := init +
++first
return init形如 accumulate(begin, end, value, fun),表示 [begin, end) 从 value 开始,对 fun 函数执行。
实现类似于:
function accumulate(first, last, init, op): -> type
while first <> last:
init := op(init, )
++first
return initstd::partial_sum
记忆方法:前缀那一部分求和
形如:partial_sum(begin, end, dist),表示 [begin, end) 的前缀和放在 dist 开始的位置,返回终止迭代器。
实现类似于:
function partial_sum(first, last, d_first): -> iterator
if first == last:
return d_first
:=
sum :=
while ++first <> last:
sum := sum +
[++d_first] := sum
return ++d_first形如:partial_sum(begin, end, dist),表示求 [begin, end) 的 fun 函数前缀,放在 dist 开始的位置,返回终止迭代器。
实现类似于:
function partial_sum(first, last, d_first, op): -> iterator
if first == last:
return d_first
sum :=
:= sum
while ++first <> last:
sum := op(sum, )
[++d_first] := sum
return ++d_firststd::adjacent_difference
记忆方法:adjacent-相邻的,difference-差值。
形如:adjacent_difference(begin, end, dist),表示 [begin, end) 对相邻两项的差值,放在 dist + 1 开始的位置,返回终止迭代器。
实现类似于:
function adjacent_difference(first, last, d_first): -> iterator
if first == last:
return d_first
acc :=
:= acc
while ++first <> last:
val :=
[++d_first] := val - acc
acc := val
return ++d_first形如:adjacent_difference(begin, end, dist, op),表示 [begin, end) 对相邻两项的 op 函数值,放在 dist + 1 开始的位置,返回终止迭代器。
实现类似于:
function adjacent_difference(first, last, d_first): -> iterator
if first == last:
return d_first
acc :=
:= acc
while ++first <> last:
val :=
[++d_first] := op(val, acc)
acc := val
return ++d_first
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]