Mam taką funkcję, chodzi o zasłonięcie bibliotecznej funkcji find_if() i wyszukiwanie w mapie elementu o danej wartości, a nie kluczu.
template <class T1, class T2>
typename map<T1,T2>::iterator find_if(map<T1, T2> mapa, int value)
{
map<T1, T2>::iterator it = mapa.begin();
for(; it!= mapa.end(); it++)
{
cout << (*it).first << endl;
if(it->second == value)
break;
}
return it;
}
W main() wpisuje:
map<int, int>::iterator IT;
map<int, int> m;
m.insert(pair<int,int>(2,3));
m.insert(pair<int,int>(4,8));
IT = find_if(m, 8);
W debuggerze funkcja odnajduje dany element, ale już nie następuje przypisanie tego do iteratora IT. Co zrobić by przypisywało? Chciałbym nie wrzucać iteratora przez referencję do funkcji.