Я озадачен поведением следующего кода.std :: векторный итератор как член класса
У меня есть фиктивный класс с векторным членом. Мне также нужен член-итератор, чтобы я мог получить доступ к вектору в различных методах без необходимости объявлять новый каждый раз. Кажется, ОК до ввода метода const.
Метод test1 использует только вектор и члены итератора.
Метод test2 вызывает ошибку компиляции, когда я пытаюсь использовать элемент const_iterator с вектором. Однако, если я объявляю новый const_iterator в методе, который он компилирует.
Может кто-то объяснить это поведение.
Благодаря
class dummy {
public:
std::vector<double> data;
// Declare iterators as members
std::vector<double>::iterator iterator1;
std::vector<double>::const_iterator const_iterator1;
void test1(){
iterator1 = data.begin();
}
void test2() const {
// const_iterator1 = data.begin(); // Fails
std::vector<double>::const_iterator const_iterator2 = data.begin(); // Compiles
}
};
Gah! Так очевидно сейчас. Благодарю. – user3194233