-1

I have a class that internally has an instance of map:

template<typename K, typename V>
class my_map {
    private:
        std::map<K, V> mmap;

Internally to the class I need to create an iterator for templated types, how can I do this?

SPlatten
  • 5,334
  • 11
  • 57
  • 128

2 Answers2

0

std::map<K, V>::iterator

see member types of std::map

Marco Kinski
  • 302
  • 3
  • 7
0

To avoid confusion with typename keyword. I suggest to do the following

template<typename K, typename V>
class my_map {
private:
    std::map<K, V> mmap;
public:
    typedef typename std::map<K, V>::iterator iterator;
    typedef typename std::map<K, V>::const_iterator const_iterator;

    iterator begin() {return mmap.begin();}
    const_iterator begin() const {return mmap.begin();}
    .
    .
    .
};

You can now use it as my_map<K, V>::iterator or my_map<K, V>::const_iterator.

Karen Baghdasaryan
  • 2,407
  • 6
  • 24