次の問題があります: 2 つの反復子と値を取り、値が 2 つの間にあるかどうかをチェックする関数を作成する必要があります。キャッチ: イテレータと値からの要素の型を示すテンプレート パラメータを 1 つしか持つことができません。
私の試みは次のようなものですが、うまくいかないようです:
template <typename T>
T myFind(iterator<std::bidirectional_iterator_tag,T> begin, iterator<std::bidirectional_iterator_tag, T> end, T elem){
// Code
}
しかし、これは機能しません:
// vector<int> vect; list<string> lst;
myFind(vect.begin(), vect.end(), 15);
myFind(lst.begin(), lst.end(), "some element");
何か案は?変更後のコード:
template <typename T>
T myFind(T begin, T end,typename std::iterator_traits<T>::value_type elem){
for(T it = begin; it != end; ++it){
if(*it == elem){
return it;
}
}
return end;
}