1#ifndef NEFORCE_CORE_ITERATOR_INSERT_ITERATOR_HPP__
2#define NEFORCE_CORE_ITERATOR_INSERT_ITERATOR_HPP__
12NEFORCE_BEGIN_NAMESPACE__
27template <
typename Container>
53 container->push_back(value);
63 container->push_back(_NEFORCE
move(value));
80template <
typename Container>
93template <
typename Container>
103 Container* container;
119 container->push_front(value);
129 container->push_front(_NEFORCE
move(value));
146template <
typename Container>
159template <
typename Container>
169 Container* container;
170 typename Container::iterator iter;
180 iter(_NEFORCE
move(it)) {}
188 iter = container->insert(iter, value);
199 iter = container->insert(iter, _NEFORCE
move(value));
218template <
typename Container>
220 typename Container::iterator it)
noexcept {
226NEFORCE_END_NAMESPACE__
constexpr back_insert_iterator & operator=(const typename Container::value_type &value)
赋值操作符,插入元素到容器尾部
output_iterator_tag iterator_category
迭代器类别
constexpr back_insert_iterator & operator=(typename Container::value_type &&value)
移动赋值操作符,插入元素到容器尾部
constexpr back_insert_iterator & operator++(int) noexcept
后置自增操作符
constexpr back_insert_iterator & operator++() noexcept
前置自增操作符
NEFORCE_CONSTEXPR20 ~back_insert_iterator() noexcept=default
析构函数
constexpr back_insert_iterator(Container &x) noexcept
构造函数
output_iterator_tag iterator_category
迭代器类别
constexpr front_insert_iterator & operator++(int) noexcept
后置自增操作符
constexpr front_insert_iterator(Container &x) noexcept
构造函数
NEFORCE_CONSTEXPR20 ~front_insert_iterator() noexcept=default
析构函数
constexpr front_insert_iterator & operator=(const typename Container::value_type &value)
赋值操作符,插入元素到容器头部
constexpr front_insert_iterator & operator++() noexcept
前置自增操作符
constexpr front_insert_iterator & operator=(typename Container::value_type &&value)
移动赋值操作符,插入元素到容器头部
constexpr insert_iterator & operator=(const typename Container::value_type &value)
赋值操作符,在指定位置插入元素
constexpr insert_iterator(Container &x, typename Container::iterator it) noexcept
构造函数
NEFORCE_CONSTEXPR20 ~insert_iterator() noexcept=default
析构函数
output_iterator_tag iterator_category
迭代器类别
constexpr insert_iterator & operator++() noexcept
前置自增操作符
constexpr insert_iterator & operator=(typename Container::value_type &&value)
移动赋值操作符,在指定位置插入元素
constexpr insert_iterator & operator++(int) noexcept
后置自增操作符
NEFORCE_NODISCARD constexpr T * addressof(T &x) noexcept
获取对象的地址
NEFORCE_NODISCARD constexpr insert_iterator< Container > make_inserter(Container &x, typename Container::iterator it) noexcept
创建insert_iterator的辅助函数
NEFORCE_NODISCARD constexpr back_insert_iterator< Container > make_back_inserter(Container &x) noexcept
创建back_insert_iterator的辅助函数
NEFORCE_NODISCARD constexpr front_insert_iterator< Container > make_front_inserter(Container &x) noexcept
创建front_insert_iterator的辅助函数
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素