Только начал программировать на C ++.
Я создал класс Point, std :: list и итератор, например:
class Point {
public:
int x, y;
Point(int x1, int y1)
{
x = x1;
y = y1;
}
};
std::list <Point> pointList;
std::list <Point>::iterator iter;
Затем я добавляю новые точки в pointList.
Теперь мне нужно перебрать все точки в pointList, поэтому мне нужно выполнить цикл с помощью итератора. Вот где я облажался.
for(iter = pointList.begin(); iter != pointList.end(); iter++)
{
Point currentPoint = *iter;
glVertex2i(currentPoint.x, currentPoint.y);
}
Обновлять
Вы, ребята, были правы, проблема не в том, что я перебираю список. Похоже, проблема в том, что я пытаюсь добавить что-то в список.
Точная ошибка:
mouse.cpp: в функции
void mouseHandler(int, int, int, int)': mouse.cpp:59: error: conversion from
Point * 'запрашивается нефалярный тип' Point '
Вот эти строки:
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
Point currentPoint = new Point(x, y);
pointList.push_front(currentPoint);
}
Что он делает для преобразования Point * в Point нескалярного типа? Я просто пытаюсь создать новые точки и включить их в список здесь.