这是一项旧考试的练习,我不知道如何解决。
我有一个叫做字典的类,我想通过对数字键(the_map_key%2 == 0)实现一个迭代器,我不知道如何实现operator ++,函数开始结束。 这是代码。
class Dictionary{
private:
map<int,list<string> > information;
这就是练习给我的,接下来是我所做的但是我不知道如何继续,当然我应该做一个构造函数和析构函数,但这很简单,我有困难operator ++,函数开始结束。
public:
class iterator{
private:
*d;
public:
int & operator *()const;{return *d};
iterator & operator++(){};
iterator begin(){};
iterator end(){};
作为示例,如果信息包含{1,something},{2,anything},{5,other} {6,an},迭代器information.begin()应该指向{2,anything},迭代器++应该指向到{6,an}。
答案 0 :(得分:2)
您的迭代器类不应包含指针,它应包含map<int,list<string> >::iterator
。您的operator*
是微不足道的 - 只是前进 - 但由于您显然想要隐藏某些密钥,因此Dictionary::iterator::operator++
无法转发map<int,list<string> >::iterator
。我并不完全明白你想要用钥匙做什么,所以我会把这些细节留给你。
答案 1 :(得分:0)
在尝试解决问题后,我编写了代码,然后我问我的教授是否正确,他告诉我这是好的,所以这里是我试图做的代码:
require_once(ROOT . DS . 'vendor' . DS . 'hybridauth' . DS . 'hybridauth' . DS . 'hybridauth' . DS . 'config.php');
谢谢,你给我的答案帮助我做了一些或多或少好的事情。
如果你看到任何错误或其他什么我可以做得更好告诉我。