|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
移位和修改算法 更多...
#include "NeForce/core/algorithm/search.hpp"#include "NeForce/core/functional/invoke.hpp"#include "NeForce/core/numeric/math.hpp"#include "NeForce/core/utility/pair.hpp"函数 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | copy (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_aux(first, last, result))) |
| 复制范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr pair< Iterator1, Iterator2 > | copy_n (Iterator1 first, iter_difference_t< Iterator1 > count, Iterator2 result) |
| 复制指定数量的元素 | |
| template<typename Iterator1, typename Iterator2, typename Pred> | |
| constexpr Iterator2 | copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Pred pred) |
| 复制满足谓词的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | copy_backward (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__copy_backward_aux(first, last, result))) |
| 反向复制范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | move (Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result))) |
| 移动范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | move_backward (Iterator1 first, Iterator1 last, Iterator2 result) |
| 反向移动范围元素 | |
| template<typename Iterator, typename T> | |
| constexpr void | fill (Iterator first, Iterator last, const T &value) noexcept(is_nothrow_assignable_v< iter_value_t< Iterator >, T >) |
| 填充范围元素 | |
| template<typename Iterator, typename T> | |
| constexpr Iterator | fill_n (Iterator first, iter_difference_t< Iterator > n, const T &value) noexcept(is_nothrow_assignable_v< iter_value_t< Iterator >, T >) |
| 填充指定数量的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr void | iter_swap (Iterator1 a, Iterator2 b) noexcept(noexcept(_NEFORCE swap(*a, *b))) |
| 交换迭代器指向的元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | swap_ranges (Iterator1 first1, Iterator1 last1, Iterator2 first2) |
| 交换两个范围的元素 | |
| template<typename Iterator, typename Function> | |
| constexpr Function | for_each (Iterator first, Iterator last, Function f) |
| 对范围元素应用函数 | |
| template<typename Iterator, typename Function> | |
| constexpr Iterator | for_each_n (Iterator first, iter_difference_t< Iterator > n, Function f) |
| 对指定数量的元素应用函数 | |
| template<typename Iterator, typename Generator> | |
| constexpr void | generate (Iterator first, Iterator last, Generator gen) |
| 用生成器的值填充范围 | |
| template<typename Iterator, typename Generator> | |
| constexpr Iterator | generate_n (Iterator first, iter_difference_t< Iterator > n, Generator gen) |
| 用生成器的值填充指定数量的元素 | |
| template<typename Iterator1, typename Iterator2, typename T> | |
| constexpr Iterator2 | replace_copy (Iterator1 first, Iterator1 last, Iterator2 result, const T &old_value, const T &new_value) |
| 替换并复制元素 | |
| template<typename Iterator1, typename Iterator2, typename Predicate, typename T> | |
| constexpr Iterator2 | replace_copy_if (Iterator1 first, Iterator1 last, Iterator2 result, Predicate pred, const T &new_value) |
| 根据谓词替换并复制元素 | |
| template<typename Iterator, typename T> | |
| constexpr void | replace (Iterator first, Iterator last, const T &old_value, const T &new_value) |
| 替换范围元素 | |
| template<typename Iterator, typename Predicate, typename T> | |
| constexpr void | replace_if (Iterator first, Iterator last, Predicate pred, const T &new_value) |
| 根据谓词替换范围元素 | |
| template<typename Iterator> | |
| constexpr void | reverse (Iterator first, Iterator last) |
| 反转范围元素顺序 | |
| template<typename Iterator> | |
| constexpr void | rotate (Iterator first, Iterator middle, Iterator last) |
| 旋转范围元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | rotate_copy (Iterator1 first, Iterator1 middle, Iterator1 last, Iterator2 result) |
| 旋转并复制元素 | |
| template<typename Iterator> | |
| constexpr void | shift_left (Iterator first, Iterator last, iter_difference_t< Iterator > n) |
| 向左移位 | |
| template<typename Iterator> | |
| constexpr void | shift_right (Iterator first, Iterator last, iter_difference_t< Iterator > n) |
| 向右移位 | |
| template<typename Iterator1, typename Iterator2, typename UnaryOperation> | |
| constexpr Iterator2 | transform (Iterator1 first, Iterator1 last, Iterator2 result, UnaryOperation op) noexcept(noexcept(++first) &&noexcept(++result) &&noexcept(*result=op(*first))) |
| 对范围元素应用一元变换 | |
| template<typename Iterator1, typename Iterator2, typename Iterator3, typename BinaryOperation> | |
| constexpr Iterator3 | transform (Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator3 result, BinaryOperation binary_op) noexcept(noexcept(++first1) &&noexcept(first2) &&noexcept(++result) &&noexcept(*result=binary_op(*first1, *first2))) |
| 对两个范围元素应用二元变换 | |
| template<typename Iterator1, typename Iterator2, typename BinaryPredicate> | |
| constexpr Iterator2 | unique_copy (Iterator1 first, Iterator1 last, Iterator2 result, BinaryPredicate binary_pred) |
| 复制唯一元素 | |
| template<typename Iterator1, typename Iterator2> | |
| constexpr Iterator2 | unique_copy (Iterator1 first, Iterator1 last, Iterator2 result) |
| 复制唯一元素(使用相等比较) | |
| template<typename Iterator> | |
| constexpr Iterator | unique (Iterator first, Iterator last) |
| 移除连续重复元素 | |
| template<typename Iterator, typename BinaryPredicate> | |
| constexpr Iterator | unique (Iterator first, Iterator last, BinaryPredicate binary_pred) |
| 根据谓词移除连续重复元素 | |