请帮忙完成这项任务,我需要编写一个简化的地图模板,其中包含Pair
类和迭代器类,我是初学者,我真的很烦乱,对此感到困扰,我会很高兴只有标题的一些帮助。
#include <cassert>
#include <functional>
#include "Exceptions.h"
template <typename DataType>
struct Node {
DataType data;
Node<DataType> *next;
};
namespace mtm {
template <class KeyType, class ValueType, class CompareFunction = std::less<KeyType> >
class MtmMap {
public:
class Pair {
public:
Pair(const KeyType& key, const ValueType& value)
: first(key), second(value){}
const KeyType first;
ValueType second;
~Pair() = default;
Pair* begin();
Pair* end();
void insert();
void insert(const KeyType&, const ValueType&);
void remove(const KeyType&);
bool containsKey(const KeyType& key) const;
int size() const;
Pair& operator=(const Pair&) = default;
ValueType& operator[](const KeyType&);
const ValueType& operator[](const KeyType&) const;
Pair& operator[]();
/*private:
Node<Pair> _pairs;
int _size;
*/
};
class iterator{
/*private:
Pair *cur_itr;
Node<Pair*> pair_ptr;
*/
public:
iterator();
iterator(const Pair*);
iterator(const iterator&);
~iterator();
iterator& operator=(const iterator&) = default;
iterator& operator++(int);
iterator& operator++();
iterator& operator*();
bool operator==(const iterator&);
};
bool operator!=(const iterator&, const iterator&);
};
}
我得到了一个空白部分,如下:
#include <cassert>
#include <functional>
#include "Exceptions.h"
namespace mtm {
template <class KeyType, class ValueType, class CompareFunction = std::less<KeyType> >
class MtmMap {
public:
class Pair {
public:
Pair(const KeyType& key, const ValueType& value)
: first(key), second(value) {}
const KeyType first;
ValueType second;
};
};
}
第一部分是在我编写实现运算符和函数所需的全部内容之后。请注意,它是地图容器的简化版本,所以我只需要这部分,不使用任何STL 。
有人可以帮助编写私有字段以及属于模板类MtmMap
结构的其他东西吗?
使用list结构的想法是我的,因为我需要运算符列表和对作为容器,我可以看到它。
任何其他想法,评论和内容都会非常好,我将非常感激,非常感谢。
修改 为了澄清我的问题,在我继续使用cpp文件进行实现之前,我已经陷入困境,因为我不明白我应该如何实现地图的所有功能,如何存储它们等等。 我需要帮助来完成这个标题。