我有方法检查客户端对象是否存在(按其名称)并返回其位置:
int Program::checkClient(string userName){
vector<Client> *ptr = &(impl->clients);
int i;
for (i = 0; i < ptr->size(); i++){
if(ptr->at(i).getName() == userName){
return i;
}
}
return -1;
}
问题是我收到警告,因为i < ptr->size()
. 我相信我需要为此使用迭代器。但是如何正确地做到这一点,因为我不仅需要遍历循环,而且还需要返回 int 作为结果,它是在哪里找到的。有任何想法吗?我尝试做这样的事情,但没有运气:
int Program::checkClient(string userName){
vector<Client> *ptr = &(impl->clients);
vector<Client>::iterator it;
for (it.ptr->begin(); it < it.ptr->end(); it++){
if(ptr->at(it).getName() == userName){
return it;
}
}
return -1;
}
我在类似的地方收到错误:it.ptr->begin()
.