Я пытаюсь получить доступ к переменной и распечатать ее. Однако я столкнулся с ошибкой Vector subscript out of range
.Выражение: векторный индекс вне диапазона C++?
Я делаю
cout << myStruct->myVector[0].GetCoordinate(0) << endl;
где myStruct
указывает на структуру, которая содержит вектор myVector
точек. Поэтому я пытаюсь распечатать свою первую координату.
Для отладки:
cout << typeid(myStruct->myVector[0].GetCoordinate(0)).name() << endl;
дает мне
float
и
cout << sizeof(myStruct->myVector[0].GetCoordinate(0)) << endl;
дает мне
4
Однако, когда я сразу напечатать его значение
cout << myStruct->myVector[0].GetCoordinate(0) << endl;
Сообщение об ошибке:
Вы проверили 'myStruct-> myVector.size()'? – Zeta
Что нужно знать о 'typeid' и' sizeof' в C++, является то, что они являются операторами * compile time *. То есть, они выполняют свою «магию», когда источник компилируется, а не когда программа работает. Вот почему они работают, даже если нормальный доступ не работает. –
Есть две вещи, которые я хотел бы знать. Первый - это размер 'myStruct-> vector'. Другое дело, что делает «GetCoordinate». –