CombinationsIterator Node1 CombinationsIterator - m_k - m_end + CombinationsIterator() + CombinationsIterator() + operator*() + operator->() + operator++() + operator++() + endIter() Node2 CombinationsGenerator Node2->Node1 -m_gen Node3 std::vector< pHypoJet > Node3->Node1 -m_input_vals -m_vals Node4 std::shared_ptr< T > + operator->() Node4->Node3 +elements Node5 T Node5->Node4 +ptr