Я пишу функцию обратного вызова, которая имеет ссылку на вектор int, переданный ей в структуре.Когда я пытаюсь получить доступ к элементу в векторе, используя подстрочный оператор [], Intellisense указывает, что == не может сравнивать два элемента, в частности, ошибка C2678: двоичный файл "==": не найден оператор, который принимает левый операндтипа 'std :: vector <_Ty>' (или нет приемлемого преобразования).Но при использовании функции at () проблем не возникает.
//body of call back function
searchInfo* argVal = (searchInfo*) Parameter;
for(int i = argVal->inclStartPos; i < argVal->exclEndPos; ++i){
if(argVal->numVector[i] == argVal->searchNum)//problem here
argVal->result = true;
//this is the structure passed through pointer
struct searchInfo{
int inclStartPos;
int exclEndPos;
vector<int>* numVector;
int searchNum;
bool result;
};
Поскольку оператор [] и функция at () вектора работают почти (различие здесь не имеет значения) одинаково,почему ошибка?