diff options
Diffstat (limited to 'src/boost/libs/container/example/doc_recursive_containers.cpp')
-rw-r--r-- | src/boost/libs/container/example/doc_recursive_containers.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/boost/libs/container/example/doc_recursive_containers.cpp b/src/boost/libs/container/example/doc_recursive_containers.cpp new file mode 100644 index 00000000..6a1746a6 --- /dev/null +++ b/src/boost/libs/container/example/doc_recursive_containers.cpp @@ -0,0 +1,73 @@ +////////////////////////////////////////////////////////////////////////////// +// +// (C) Copyright Ion Gaztanaga 2009-2013. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// +// See http://www.boost.org/libs/container for documentation. +// +////////////////////////////////////////////////////////////////////////////// +#include <boost/container/detail/config_begin.hpp> +#include <boost/container/detail/workaround.hpp> +//[doc_recursive_containers +#include <boost/container/vector.hpp> +#include <boost/container/stable_vector.hpp> +#include <boost/container/deque.hpp> +#include <boost/container/list.hpp> +#include <boost/container/map.hpp> +#include <boost/container/string.hpp> + +using namespace boost::container; + +struct data +{ + int i_; + //A vector holding still undefined class 'data' + vector<data> v_; + vector<data>::iterator vi_; + //A stable_vector holding still undefined class 'data' + stable_vector<data> sv_; + stable_vector<data>::iterator svi_; + //A stable_vector holding still undefined class 'data' + deque<data> d_; + deque<data>::iterator di_; + //A list holding still undefined 'data' + list<data> l_; + list<data>::iterator li_; + //A map holding still undefined 'data' + map<data, data> m_; + map<data, data>::iterator mi_; + + friend bool operator <(const data &l, const data &r) + { return l.i_ < r.i_; } +}; + +struct tree_node +{ + string name; + string value; + + //children nodes of this node + list<tree_node> children_; + list<tree_node>::iterator selected_child_; +}; + + + +int main() +{ + //a container holding a recursive data type + stable_vector<data> sv; + sv.resize(100); + + //Let's build a tree based in + //a recursive data type + tree_node root; + root.name = "root"; + root.value = "root_value"; + root.children_.resize(7); + root.selected_child_ = root.children_.begin(); + return 0; +} +//] +#include <boost/container/detail/config_end.hpp> |