ベクトルを検索し、ベクトル内のポインターの位置を見つけ、検索が成功した場合は反復子を返す次の関数を作成しました。
template<class InputIterator>
InputIterator MainCore::findDeviceAccordingToIP ( const char * value )
{
std::vector<Device *>::iterator first,last;
first = this->devList->begin();
last = this->devList->end();
Device *temp;
for ( ;first!=last; first++){
temp = *first;
if ( strcmp(temp->endpoint->IPAddress.c_str(),value) == 0)
{
return first;
break;
}
}
//return false;
}
上記の cpp ファイルのコードは、次のコードを *.h ファイルの MainCore クラスに配置します。
template<class InputIterator>
InputIterator findDeviceAccordingToIP (const char *value );
今、次のような別の関数を呼び出すと:
this->findDeviceAccordingToIP("192.168.2.11");
今、私は2つの質問があります:
コンパイルすると、次のエラーが発生します。
error: no matching function for call to MainCore::findDeviceAccordingToIP(const char [13])
どのようにリターンTを取得し、ブール値とイテレータのみを取得しますか?