28 #ifndef YB_INC_ystdex_algorithm_hpp_
29 #define YB_INC_ystdex_algorithm_hpp_ 1
59 "Non-POD type found @ pod_fill;");
61 switch((last - first) & 7)
66 *first = value; ++
first;
67 case 7: *first = value; ++
first;
68 case 6: *first = value; ++
first;
69 case 5: *first = value; ++
first;
70 case 4: *first = value; ++
first;
71 case 3: *first = value; ++
first;
72 case 2: *first = value; ++
first;
73 case 1: *first = value; ++
first;
84 "Non-POD type found @ pod_copy_n;");
86 std::memcpy(result, first,
sizeof(*first) * n);
102 "Non-POD type found @ pod_move_n;");
104 std::memmove(result, first,
sizeof(*first) * n);
108 template<
class _type>
128 template<
typename _tFwd>
134 for(_tFwd i(first); i != last; ++i)
135 if(std::find(first, result, *i) == result)
_tFwd stable_range_unique(_tFwd first, _tFwd last)
去除迭代器指定的范围中的重复元素,且不改变元素之间的相对顺序。
static auto first(const _tIterator &i) -> decltype((i->first))
typename remove_reference< _type >::type remove_reference_t
_type * pod_fill(_type *first, _type *last, const _type &value)
void swap(any &x, any &y)
交换对象。
_type * pod_copy_n(const _type *first, size_t n, _type *result)
_type * pod_move_n(const _type *first, size_t n, _type *result)
_type * pod_move(const _type *first, const _type *last, _type *result)
_type * pod_copy(const _type *first, const _type *last, _type *result)