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 /*************************************************************************************************/
implementation::forest_const_iterator< T > const_iterator Definition: forest.hpp:553 filter_fullorder_iterator() Definition: forest.hpp:139 child_adaptor(forest_type &f, iterator_type &i) Definition: forest.hpp:972 Definition: forest.hpp:42 edge_iterator< const_iterator, forest_leading_edge > const_preorder_iterator Definition: forest.hpp:571 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< 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 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:312 bool equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, BinaryPredicate pred) Definition: equal.hpp:38 filter_fullorder_iterator(I f, I l) Definition: forest.hpp:149 edge_iterator(const edge_iterator< U, Edge > &u) Definition: forest.hpp:111 iterator insert(const iterator &position, const T &x) Definition: forest.hpp:619 Forest::difference_type difference_type Definition: forest.hpp:969 friend class boost::iterator_core_access Definition: forest.hpp:115 edge_iterator< iterator, forest_trailing_edge > postorder_iterator Definition: forest.hpp:572 Definition: forest.hpp:291 bool equal_node(const reverse_fullorder_iterator &y) const Definition: forest.hpp:261 Definition: forest.hpp:41 inherited_t::reference reference Definition: forest.hpp:247 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 bool equal_node(depth_fullorder_iterator const &y) const Definition: forest.hpp:309 Definition: forest.hpp:332 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 friend class boost::iterator_core_access Definition: forest.hpp:172 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 depth_fullorder_iterator(const depth_fullorder_iterator< U > &x) Definition: forest.hpp:301 bool equal_node(const filter_fullorder_iterator &y) const Definition: forest.hpp:169 depth_fullorder_iterator(I x, difference_type d=0) Definition: forest.hpp:297 adobe::child_iterator< iterator > child_iterator Definition: forest.hpp:562 Definition: functional.hpp:26 reverse_fullorder_iterator< const_iterator > const_reverse_iterator Definition: forest.hpp:560 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 boost::range_difference< InputRange >::type count(InputRange &range, T &value) count implementation Definition: count.hpp:41 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 Forest::const_reference const_reference Definition: forest.hpp:968 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 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 adobe::child_iterator< const_iterator > const_child_iterator Definition: forest.hpp:567 filter_fullorder_iterator(const filter_fullorder_iterator< U, P > &x) Definition: forest.hpp:156 void reverse(child_iterator first, child_iterator last) Definition: forest.hpp:950 reverse_fullorder_iterator(I x) Definition: forest.hpp:250 reverse_fullorder_iterator< iterator > reverse_iterator Definition: forest.hpp:559 void swap(circular_queue< T > &, circular_queue< T > &) friend class boost::iterator_core_access Definition: forest.hpp:88 reverse_fullorder_iterator(const reverse_fullorder_iterator< U > &x) Definition: forest.hpp:252 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 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 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 iterator insert_parent(child_iterator front, child_iterator back, const T &x) Definition: forest.hpp:938 reverse_fullorder_iterator() Definition: forest.hpp:249 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 filter_fullorder_iterator(I f, I l, P p) Definition: forest.hpp:141 edge_iterator< const_iterator, forest_trailing_edge > const_postorder_iterator Definition: forest.hpp:573 edge_iterator< iterator, forest_leading_edge > preorder_iterator Definition: forest.hpp:570 friend class boost::iterator_core_access Definition: forest.hpp:265 std::reverse_iterator< child_iterator > reverse_child_iterator Definition: forest.hpp:568 boost::range_size< Selection >::type size(const Selection &x) Definition: selection_algorithms.hpp:457 Definition: forest.hpp:237 Definition: set_next.hpp:39 |