Это базовая функция двоичного поиска для vector.I хочу получить доступ к функции get объекта, но я получаю ошибку.функция объекта вектора доступа к канту через -> оператор
bool binFindInVec(vector<Client> *vec,string sur){
int from,to,pos;
from = 0;
to = vec->size()-1;
while(from<=to){
pos = (from+to)/2;
if(vec[pos]->getSurname() == sur){
return true;
}
else if(vec[pos]->getSurname() > sur){
to = pos-1;
}
else{
from = pos + 1;
}
}
return NULL;
}
ошибка:
In function 'bool binFindInVec(std::vector*, std::string)':
176 14 [Error] base operand of '->' has non-pointer type 'std::vector'
179 19 [Error] base operand of '->' has non-pointer type 'std::vector'
Возможно, вы захотите '(* vec) [pos] .getSurname()'. – songyuanyao
Кроме того, вы можете сделать вещи менее сложными, передав ссылку вместо этого: 'bool binFindInVec (vector & vec, string sur) {'. Тогда вы можете просто использовать: 'vec [pos] .getSurname()'. –
Вы также можете подумать, почему вам нужно передать указатель на свой вектор, а не ссылку. –