如何正确使用const_iterator?

时间:2015-12-08 10:56:03

标签: c++11 iterator const-iterator

我正在尝试使用stl lib创建一个带有map的容器类,但我对const_iterator有严重问题。

在我的课程ConjuntoPreguntas中,您如何欣赏,我尝试使用不同格式的begin()end()方法,但我找不到正确的方法。< / p>

在我的主要课程中,我尝试使用接收imprimir的{​​{1}}函数,并且存在问题。所以我需要使用const ConjuntoPreguntas

const ConjuntoPreguntas&

1 个答案:

答案 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;