forest.hpp
Go to the documentation of this file.
7 /*************************************************************************************************/ 12 /*************************************************************************************************/ 27 /*************************************************************************************************/ 31 /*************************************************************************************************/ 45 /*************************************************************************************************/ 53 /*************************************************************************************************/ 61 /*************************************************************************************************/ 70 /*************************************************************************************************/ 76 /*************************************************************************************************/ 94 /*************************************************************************************************/ 102 /*************************************************************************************************/ 124 /*************************************************************************************************/ 169 bool equal_node(const filter_fullorder_iterator& y) const { return this->base().equal_node(y.base()); } 222 /*************************************************************************************************/ 232 but that might break people who assume base() is off by one for a reverse iterator, and it still 288 /*************************************************************************************************/ 294 typedef typename boost::iterator_adaptor<depth_fullorder_iterator<I>, I>::difference_type difference_type; 309 bool equal_node(depth_fullorder_iterator const& y) const { return this->base().equal_node(y.base()); } 330 /*************************************************************************************************/ 336 /*************************************************************************************************/ 379 /*************************************************************************************************/ 448 /*************************************************************************************************/ 517 /*************************************************************************************************/ 522 /*************************************************************************************************/ 529 void operator()(implementation::forest_iterator<T> x, implementation::forest_iterator<T> y) const 540 /*************************************************************************************************/ 641 iterator splice(iterator position, forest<T>& x, child_iterator first, child_iterator last, size_type count); 699 /*************************************************************************************************/ 716 /*************************************************************************************************/ 722 /*************************************************************************************************/ 737 /*************************************************************************************************/ 748 /*************************************************************************************************/ 759 /*************************************************************************************************/ 771 /*************************************************************************************************/ 787 /*************************************************************************************************/ 800 /*************************************************************************************************/ 825 /*************************************************************************************************/ 831 /*************************************************************************************************/ 864 /*************************************************************************************************/ 873 /*************************************************************************************************/ 882 /*************************************************************************************************/ 896 /*************************************************************************************************/ 899 typename forest<T>::iterator forest<T>::splice(iterator pos, forest<T>& x, child_iterator first, 928 /*************************************************************************************************/ 935 /*************************************************************************************************/ 938 typename forest<T>::iterator forest<T>::insert_parent(child_iterator first, child_iterator last, 947 /*************************************************************************************************/ 958 /*************************************************************************************************/ 992 /*************************************************************************************************/ 998 /*************************************************************************************************/ 1004 /*************************************************************************************************/ 1028 return std::make_pair(iterator(boost::begin(x), boost::end(x), p), iterator(boost::end(x), boost::end(x), p)); 1048 return std::make_pair(iterator(p, boost::begin(x), boost::end(x)), iterator(p, boost::end(x), boost::end(x))); 1051 /*************************************************************************************************/ 1103 /*************************************************************************************************/ 1143 /*************************************************************************************************/ 1174 inline std::pair<edge_iterator<typename boost::range_const_iterator<R>::type, forest_trailing_edge>, 1178 typedef edge_iterator<typename boost::range_const_iterator<R>::type, forest_trailing_edge> iterator; 1183 /*************************************************************************************************/ 1214 inline std::pair<edge_iterator<typename boost::range_const_iterator<R>::type, forest_leading_edge>, 1218 typedef edge_iterator<typename boost::range_const_iterator<R>::type, forest_leading_edge> iterator; 1223 /*************************************************************************************************/ 1227 /*************************************************************************************************/ 1231 /*************************************************************************************************/ filter_fullorder_iterator() Definition: forest.hpp:139 Definition: forest.hpp:42 Definition: forest.hpp:332 depth_fullorder_iterator(difference_type d=0) Definition: forest.hpp:296 void operator()(child_iterator< I > x, child_iterator< I > y) Definition: forest.hpp:729 std::pair< edge_iterator< typename boost::range_const_iterator< R >::type, forest_leading_edge >, edge_iterator< typename boost::range_const_iterator< R >::type, forest_leading_edge > > preorder_range(const R &x) Definition: forest.hpp:1216 bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate pred) Definition: equal.hpp:38 child_adaptor(forest_type &f, iterator_type &i) Definition: forest.hpp:972 filter_fullorder_iterator(I f, I l) Definition: forest.hpp:149 edge_iterator(const edge_iterator< U, Edge > &u) Definition: forest.hpp:111 Definition: forest.hpp:291 Definition: forest.hpp:41 bool equal_node(depth_fullorder_iterator const &y) const Definition: forest.hpp:309 bool equal_node(const reverse_fullorder_iterator &y) const Definition: forest.hpp:261 inherited_t::reference reference Definition: forest.hpp:247 std::pair< edge_iterator< typename boost::range_const_iterator< R >::type, forest_trailing_edge >, edge_iterator< typename boost::range_const_iterator< R >::type, forest_trailing_edge > > postorder_range(const R &x) Definition: forest.hpp:1176 adobe::child_iterator< iterator > child_iterator Definition: forest.hpp:562 bool operator==(const circular_queue< T > &x, const circular_queue< T > &y) Definition: circular_queue.hpp:421 bool operator!=(const forest< T > &x, const forest< T > &y) Definition: forest.hpp:719 edge_iterator< iterator, forest_leading_edge > preorder_iterator Definition: forest.hpp:570 depth_fullorder_iterator(const depth_fullorder_iterator< U > &x) Definition: forest.hpp:301 std::pair< reverse_fullorder_iterator< typename boost::range_iterator< R >::type >, reverse_fullorder_iterator< typename boost::range_iterator< R >::type > > reverse_fullorder_range(R &x) Definition: forest.hpp:1076 Forest::const_reference const_reference Definition: forest.hpp:968 std::pair< filter_fullorder_iterator< typename boost::range_iterator< R >::type, P >, filter_fullorder_iterator< typename boost::range_iterator< R >::type, P > > filter_fullorder_range(R &x, P p) Definition: forest.hpp:1024 reverse_fullorder_iterator< iterator > reverse_iterator Definition: forest.hpp:559 depth_fullorder_iterator(I x, difference_type d=0) Definition: forest.hpp:297 Definition: functional.hpp:26 iterator insert_parent(child_iterator front, child_iterator back, const T &x) Definition: forest.hpp:938 boost::range_difference< InputRange >::type count(InputRange &range, T &value) count implementation Definition: count.hpp:41 void reverse(child_iterator first, child_iterator last) Definition: forest.hpp:950 adobe::child_iterator< const_iterator > const_child_iterator Definition: forest.hpp:567 std::pair< depth_fullorder_iterator< typename boost::range_const_iterator< R >::type >, depth_fullorder_iterator< typename boost::range_const_iterator< R >::type > > depth_range(const R &x) Definition: forest.hpp:1136 filter_fullorder_iterator(const filter_fullorder_iterator< U, P > &x) Definition: forest.hpp:156 iterator insert(const iterator &position, const T &x) Definition: forest.hpp:619 reverse_fullorder_iterator(I x) Definition: forest.hpp:250 void swap(circular_queue< T > &, circular_queue< T > &) std::pair< depth_fullorder_iterator< typename boost::range_iterator< R >::type >, depth_fullorder_iterator< typename boost::range_iterator< R >::type > > depth_range(R &x) Definition: forest.hpp:1117 friend class boost::iterator_core_access Definition: forest.hpp:88 reverse_fullorder_iterator(const reverse_fullorder_iterator< U > &x) Definition: forest.hpp:252 edge_iterator< iterator, forest_trailing_edge > postorder_iterator Definition: forest.hpp:572 child_iterator(const child_iterator< U > &u) Definition: forest.hpp:84 Definition: forest.hpp:135 An iterator used to traverse the children of a specific node in a forest. Definition: forest.hpp:79 T::iterator erase(T &x, typename T::iterator f, typename T::iterator l) Definition: erase_if.hpp:63 std::pair< filter_fullorder_iterator< typename boost::range_const_iterator< R >::type, P >, filter_fullorder_iterator< typename boost::range_const_iterator< R >::type, P > > filter_fullorder_range(const R &x, P p) Definition: forest.hpp:1044 An iterator used to traverse a specific edge type within a forest. Definition: forest.hpp:105 boost::iterator_adaptor< depth_fullorder_iterator< I >, I >::difference_type difference_type Definition: forest.hpp:294 reverse_fullorder_iterator< const_iterator > const_reverse_iterator Definition: forest.hpp:560 Forest::difference_type difference_type Definition: forest.hpp:969 std::pair< edge_iterator< typename boost::range_iterator< R >::type, forest_leading_edge >, edge_iterator< typename boost::range_iterator< R >::type, forest_leading_edge > > preorder_range(R &x) Definition: forest.hpp:1197 reverse_fullorder_iterator() Definition: forest.hpp:249 filter_fullorder_iterator(I f, I l, P p) Definition: forest.hpp:141 implementation::forest_const_iterator< T > const_iterator Definition: forest.hpp:553 std::pair< reverse_fullorder_iterator< typename boost::range_const_iterator< R >::type >, reverse_fullorder_iterator< typename boost::range_const_iterator< R >::type > > reverse_fullorder_range(const R &x) Definition: forest.hpp:1095 edge_iterator< const_iterator, forest_trailing_edge > const_postorder_iterator Definition: forest.hpp:573 boost::range_size< Selection >::type size(const Selection &x) Definition: selection_algorithms.hpp:457 edge_iterator< const_iterator, forest_leading_edge > const_preorder_iterator Definition: forest.hpp:571 bool equal_node(const filter_fullorder_iterator &y) const Definition: forest.hpp:169 std::reverse_iterator< child_iterator > reverse_child_iterator Definition: forest.hpp:568 std::pair< edge_iterator< typename boost::range_iterator< R >::type, forest_trailing_edge >, edge_iterator< typename boost::range_iterator< R >::type, forest_trailing_edge > > postorder_range(R &x) Definition: forest.hpp:1157 Definition: forest.hpp:237 Definition: set_next.hpp:39 |