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));
86template <
typename Container>
99template <
typename Container>
109 Container* container;
125 container->push_front(value);
135 container->push_front(_NEFORCE
move(value));
158template <
typename Container>
171template <
typename Container>
181 Container* container;
182 typename Container::iterator iter;
192 iter(_NEFORCE
move(it)) {}
200 iter = container->insert(iter, value);
211 iter = container->insert(iter, _NEFORCE
move(value));
236template <
typename Container>
238 typename Container::iterator it)
noexcept {
244NEFORCE_END_NAMESPACE__
constexpr back_insert_iterator & operator=(const typename Container::value_type &value)
赋值操作符,插入元素到容器尾部
constexpr ~back_insert_iterator() noexcept=default
析构函数
output_iterator_tag iterator_category
迭代器类别
constexpr back_insert_iterator & operator=(typename Container::value_type &&value)
移动赋值操作符,插入元素到容器尾部
ptrdiff_t difference_type
差值类型
constexpr back_insert_iterator(Container &x) noexcept
构造函数
output_iterator_tag iterator_category
迭代器类别
constexpr front_insert_iterator(Container &x) noexcept
构造函数
constexpr ~front_insert_iterator() noexcept=default
析构函数
constexpr front_insert_iterator & operator=(const typename Container::value_type &value)
赋值操作符,插入元素到容器头部
ptrdiff_t difference_type
差值类型
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
构造函数
output_iterator_tag iterator_category
迭代器类别
constexpr ~insert_iterator() noexcept=default
析构函数
constexpr insert_iterator & operator=(typename Container::value_type &&value)
移动赋值操作符,在指定位置插入元素
ptrdiff_t difference_type
差值类型
constexpr T * addressof(T &x) noexcept
获取对象的地址
constexpr back_insert_iterator< Container > make_back_inserter(Container &x) noexcept
创建back_insert_iterator的辅助函数
constexpr insert_iterator< Container > make_inserter(Container &x, typename Container::iterator it) noexcept
创建insert_iterator的辅助函数
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)))
移动范围元素