我正在尝试使用stl lib创建一个带有map的容器类,但我对const_iterator
有严重问题。
在我的课程ConjuntoPreguntas
中,您如何欣赏,我尝试使用不同格式的begin()
和end()
方法,但我找不到正确的方法。< / p>
在我的主要课程中,我尝试使用接收imprimir
的{{1}}函数,并且存在问题。所以我需要使用const ConjuntoPreguntas
。
const ConjuntoPreguntas&
答案 0 :(得分:0)
你的cbegin和cend应该是const:
const_iterator cbegin() const {
// ^^^^^
const_iterator i ;
i.it = preguntas.begin();
return i ;
}
const_iterator cend() const {
// ^^^^^
const_iterator i;
i.it= preguntas.end();
return i;
}
那就是说,你可以从地图中导入它们,而不是定义迭代器和const_iterator:
class ConjuntoPreguntas {
private:
map<int,Pregunta> preguntas;
public:
using const_iterator = map<int,Pregunta>::const_iterator;
using iterator = map<int,Pregunta>::iterator;