struct Trains
{
........
int m_nTrainNumber;
........
};
bool CompareTrainNumber(Trains rhs, int lhs)
{
return rhs.m_nTrainNumber == lhs;
}
//Часть кода где необходим поиск
vector<Trains>::iterator it = find_if(aTrainsVector.begin(), aTrainsVector.end(),
bind2nd( ptr_fun(CompareTrainNumber), TrainsNumberThatNeedFind) );
if(it == aTrainsVector.end())
//нет такого номера
cout << it->m_nTrainNumber;
//Дальше выводи все что осталось
aTrainsVector - тут содержатся данные о поездах, тип - vector<Trains>.
разбирайся и спрашивай, твой код у меня смотреть нет желания.