12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- //////////////////////////////////////////////////////////////////////////////
- //
- // (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>
|