]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/ptr_container/doc/ptr_inserter.rst
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / ptr_container / doc / ptr_inserter.rst
1 ++++++++++++++++++++++++++++++++++
2 |Boost| Pointer Container Library
3 ++++++++++++++++++++++++++++++++++
4
5 .. |Boost| image:: boost.png
6
7 Insert Iterators
8 ----------------
9
10 When you work with normal value-based containers and algorithms, you often
11 use insert iterators ::
12
13 std::list<int> coll1;
14 // ...
15 std::vector<int> coll2;
16 std::copy( coll1.begin(), coll1.end(),
17 back_inserter(coll2) );
18
19 With the special insert iterators for pointer containers,
20 you can do exactly the same ::
21
22 boost::ptr_list<Base> coll1;
23 // ...
24 boost::ptr_vector<Base> coll2;
25 std::copy( coll1.begin(), coll1.end(),
26 boost::ptr_container::ptr_back_inserter(coll2) );
27
28 Each element is cloned and inserted into the container. Furthermore,
29 if the source range iterates over pointers
30 instead of references, ``NULL`` pointers
31 can be transfered as well.
32
33 **Navigate**
34
35 - `home <ptr_container.html>`_
36 - `reference <reference.html>`_
37
38 **Synopsis:**
39
40 ::
41
42 namespace boost
43 {
44 namespace ptr_container
45 {
46
47 template< class PtrContainer >
48 class ptr_back_insert_iterator;
49
50 template< class PtrContainer >
51 class ptr_front_insert_iterator;
52
53 template< class PtrContainer >
54 class ptr_insert_iterator;
55
56 template< class PtrContainer >
57 ptr_back_insert_iterator<PtrContainer>
58 ptr_back_inserter( PtrContainer& cont );
59
60 template< class PtrContainer >
61 ptr_front_insert_iterator<PtrContainer>
62 ptr_front_inserter( PtrContainer& cont );
63
64 template< class PtrContainer >
65 ptr_insert_iterator<PtrContainer>
66 ptr_inserter( PtrContainer& cont, typename PtrContainer::iterator before );
67
68 } // namespace 'ptr_container'
69 } // namespace 'boost'
70
71 .. raw:: html
72
73 <hr>
74
75 :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__).
76
77 __ http://www.boost.org/LICENSE_1_0.txt
78
79