20 std::vector<SNode> _st;
23 using iterator_category = std::bidirectional_iterator_tag;
24 using difference_type = std::ptrdiff_t;
28 this->idx = UINT64_MAX;
42 BASE_ITE::initialize_stack(this->_st, *_root);
47 this->idx = UINT64_MAX;
57 uint64_t get_current_leaf_container_index()
const
59 assert(this->_st.size() != 0);
60 SNode top = this->_st[this->_st.size() - 1];
61 return top.pointer.get_leaf_container_index();
66 return this->idx == UINT64_MAX;
71 for (
auto &it : this->_st)
73 item._st.push_back(it.copy());
84 uint64_t operator*()
const
86 return this->get_current_leaf_container_index();
93 bool b = BASE_ITE::proceed(this->_st);
95 SNode top = this->_st[this->_st.size() - 1];
96 if(top.pointer.is_leaf()){
101 this->idx = UINT64_MAX;