tmp/tmpx6wcoie9/{from.md → to.md}
RENAMED
|
@@ -1,7 +1,9 @@
|
|
| 1 |
### Insert iterators <a id="insert.iterators">[[insert.iterators]]</a>
|
| 2 |
|
|
|
|
|
|
|
| 3 |
To make it possible to deal with insertion in the same way as writing
|
| 4 |
into an array, a special kind of iterator adaptors, called *insert
|
| 5 |
iterators*, are provided in the library. With regular iterator classes,
|
| 6 |
|
| 7 |
``` cpp
|
|
@@ -34,21 +36,20 @@ iterators out of a container.
|
|
| 34 |
``` cpp
|
| 35 |
namespace std {
|
| 36 |
template<class Container>
|
| 37 |
class back_insert_iterator {
|
| 38 |
protected:
|
| 39 |
-
Container* container
|
| 40 |
|
| 41 |
public:
|
| 42 |
using iterator_category = output_iterator_tag;
|
| 43 |
using value_type = void;
|
| 44 |
using difference_type = ptrdiff_t;
|
| 45 |
using pointer = void;
|
| 46 |
using reference = void;
|
| 47 |
using container_type = Container;
|
| 48 |
|
| 49 |
-
constexpr back_insert_iterator() noexcept = default;
|
| 50 |
constexpr explicit back_insert_iterator(Container& x);
|
| 51 |
constexpr back_insert_iterator& operator=(const typename Container::value_type& value);
|
| 52 |
constexpr back_insert_iterator& operator=(typename Container::value_type&& value);
|
| 53 |
|
| 54 |
constexpr back_insert_iterator& operator*();
|
|
@@ -109,21 +110,20 @@ template<class Container>
|
|
| 109 |
``` cpp
|
| 110 |
namespace std {
|
| 111 |
template<class Container>
|
| 112 |
class front_insert_iterator {
|
| 113 |
protected:
|
| 114 |
-
Container* container
|
| 115 |
|
| 116 |
public:
|
| 117 |
using iterator_category = output_iterator_tag;
|
| 118 |
using value_type = void;
|
| 119 |
using difference_type = ptrdiff_t;
|
| 120 |
using pointer = void;
|
| 121 |
using reference = void;
|
| 122 |
using container_type = Container;
|
| 123 |
|
| 124 |
-
constexpr front_insert_iterator() noexcept = default;
|
| 125 |
constexpr explicit front_insert_iterator(Container& x);
|
| 126 |
constexpr front_insert_iterator& operator=(const typename Container::value_type& value);
|
| 127 |
constexpr front_insert_iterator& operator=(typename Container::value_type&& value);
|
| 128 |
|
| 129 |
constexpr front_insert_iterator& operator*();
|
|
@@ -184,22 +184,21 @@ template<class Container>
|
|
| 184 |
``` cpp
|
| 185 |
namespace std {
|
| 186 |
template<class Container>
|
| 187 |
class insert_iterator {
|
| 188 |
protected:
|
| 189 |
-
Container* container
|
| 190 |
-
ranges::iterator_t<Container> iter
|
| 191 |
|
| 192 |
public:
|
| 193 |
using iterator_category = output_iterator_tag;
|
| 194 |
using value_type = void;
|
| 195 |
using difference_type = ptrdiff_t;
|
| 196 |
using pointer = void;
|
| 197 |
using reference = void;
|
| 198 |
using container_type = Container;
|
| 199 |
|
| 200 |
-
insert_iterator() = default;
|
| 201 |
constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i);
|
| 202 |
constexpr insert_iterator& operator=(const typename Container::value_type& value);
|
| 203 |
constexpr insert_iterator& operator=(typename Container::value_type&& value);
|
| 204 |
|
| 205 |
constexpr insert_iterator& operator*();
|
|
|
|
| 1 |
### Insert iterators <a id="insert.iterators">[[insert.iterators]]</a>
|
| 2 |
|
| 3 |
+
#### General <a id="insert.iterators.general">[[insert.iterators.general]]</a>
|
| 4 |
+
|
| 5 |
To make it possible to deal with insertion in the same way as writing
|
| 6 |
into an array, a special kind of iterator adaptors, called *insert
|
| 7 |
iterators*, are provided in the library. With regular iterator classes,
|
| 8 |
|
| 9 |
``` cpp
|
|
|
|
| 36 |
``` cpp
|
| 37 |
namespace std {
|
| 38 |
template<class Container>
|
| 39 |
class back_insert_iterator {
|
| 40 |
protected:
|
| 41 |
+
Container* container;
|
| 42 |
|
| 43 |
public:
|
| 44 |
using iterator_category = output_iterator_tag;
|
| 45 |
using value_type = void;
|
| 46 |
using difference_type = ptrdiff_t;
|
| 47 |
using pointer = void;
|
| 48 |
using reference = void;
|
| 49 |
using container_type = Container;
|
| 50 |
|
|
|
|
| 51 |
constexpr explicit back_insert_iterator(Container& x);
|
| 52 |
constexpr back_insert_iterator& operator=(const typename Container::value_type& value);
|
| 53 |
constexpr back_insert_iterator& operator=(typename Container::value_type&& value);
|
| 54 |
|
| 55 |
constexpr back_insert_iterator& operator*();
|
|
|
|
| 110 |
``` cpp
|
| 111 |
namespace std {
|
| 112 |
template<class Container>
|
| 113 |
class front_insert_iterator {
|
| 114 |
protected:
|
| 115 |
+
Container* container;
|
| 116 |
|
| 117 |
public:
|
| 118 |
using iterator_category = output_iterator_tag;
|
| 119 |
using value_type = void;
|
| 120 |
using difference_type = ptrdiff_t;
|
| 121 |
using pointer = void;
|
| 122 |
using reference = void;
|
| 123 |
using container_type = Container;
|
| 124 |
|
|
|
|
| 125 |
constexpr explicit front_insert_iterator(Container& x);
|
| 126 |
constexpr front_insert_iterator& operator=(const typename Container::value_type& value);
|
| 127 |
constexpr front_insert_iterator& operator=(typename Container::value_type&& value);
|
| 128 |
|
| 129 |
constexpr front_insert_iterator& operator*();
|
|
|
|
| 184 |
``` cpp
|
| 185 |
namespace std {
|
| 186 |
template<class Container>
|
| 187 |
class insert_iterator {
|
| 188 |
protected:
|
| 189 |
+
Container* container;
|
| 190 |
+
ranges::iterator_t<Container> iter;
|
| 191 |
|
| 192 |
public:
|
| 193 |
using iterator_category = output_iterator_tag;
|
| 194 |
using value_type = void;
|
| 195 |
using difference_type = ptrdiff_t;
|
| 196 |
using pointer = void;
|
| 197 |
using reference = void;
|
| 198 |
using container_type = Container;
|
| 199 |
|
|
|
|
| 200 |
constexpr insert_iterator(Container& x, ranges::iterator_t<Container> i);
|
| 201 |
constexpr insert_iterator& operator=(const typename Container::value_type& value);
|
| 202 |
constexpr insert_iterator& operator=(typename Container::value_type&& value);
|
| 203 |
|
| 204 |
constexpr insert_iterator& operator*();
|