Мне нужно найти позицию элемента в std::vector, чтобы использовать ее для ссылки на элемент в другом векторе:
int find( const vector<type>& where, int searchParameter )
{
for( int i = 0; i < where.size(); i++ ) {
if( conditionMet( where[i], searchParameter ) ) {
return i;
}
}
return -1;
}
// caller:
const int position = find( firstVector, parameter );
if( position != -1 ) {
doAction( secondVector[position] );
}
однако vector::size()
возвращает size_t
, что соответствует интегральному типу unsigned
, который не может непосредственно хранить -1
. Как я могу сигнализировать, что элемент не найден в векторе при использовании size_t
вместо int
в качестве индекса?