标题: C++ 中 <iterator> <functional> <numeric> 库好用的函数 [打印本页] 作者: 莱莱 时间: 2023-12-19 19:09 标题: 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 += n
复制代码
std::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 it
复制代码
std::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 了。
[table][tr]函数表示[/tr][tr][td]2.3 算术运算[/td][td][/td][/tr][tr][td]plus[/td][td]实现 x + y 的函数对象 (类模板)[/td][/tr][tr][td]minus[/td][td]实现 x - y 的函数对象 (类模板)[/td][/tr][tr][td]multiplies[/td][td]实现 x * y 的函数对象 (类模板)[/td][/tr][tr][td]divides[/td][td]实现 x / y 的函数对象 (类模板)[/td][/tr][tr][td]modulus[/td][td]实现 x % y 的函数对象 (类模板)[/td][/tr][tr][td]negate[/td][td]实现 -x 的函数对象 (类模板)[/td][/tr][tr][td]2.4 比较[/td][td][/td][/tr][tr][td]equal_to[/td][td]实现 x == y 的函数对象 (类模板)[/td][/tr][tr][td]not_equal_to[/td][td]实现 x != y 的函数对象 (类模板)[/td][/tr][tr][td]greater[/td][td]实现 x > y 的函数对象 (类模板)[/td][/tr][tr][td]less[/td][td]实现 x < y 的函数对象 (类模板)[/td][/tr][tr][td]greater_equal[/td][td]实现 x >= y 的函数对象 (类模板)[/td][/tr][tr][td]less_equal[/td][td]实现 x ta。</p>形如 iota(begin, end, value),表示 [begin, end) 从 value 开始,递增填充。
实现类似于: