Я возиться с указателем на вектор указателей
std::vector<int*>* MyVector;
К которому я пытаюсь получить доступ, используя эти 2 метода:
MyVector->at(i); //This works
MyVector[i] //This says "Expression must be a pointer to a complete object type"
Насколько я понимаю, разницамежду векторами [] operator
и at
метод заключается в том, что метод at выполняет дополнительные проверки границ, поэтому мой вопрос заключается в том, почему методу at удается получить доступ к элементу, тогда как [] operator
нет?
РЕДАКТИРОВАТЬ:
Весь код здесь
#include <vector>
#include <iostream>
std::vector<int*>* MyVector;
int main()
{
MyVector = new std::vector<int*>;
MyVector->push_back(new int(5));
for (unsigned int i = 0; i < MyVector->size(); i++)
{
delete MyVector->at(i); //This works
delete MyVector[i]; //This says "Expression must be a pointer to a complete object type
}
system("pause");
}