I don't like this approach, but...
template <typename C>
typename C::iterator SlowFind(C& c, const typename C::value_type& v)
{
typename C::iterator i;
for (i = c.begin(); i != c.end() && *i != v; ++i)
;
return i;
}
typedef std::vector<int> Vector;
typedef std::list<int> List;
using std::cout;
using std::endl;
int main()
{
Vector iv;
iv.push_back(1);
iv.push_back(2);
iv.push_back(3);
Vector::iterator vi;
vi = SlowFind<Vector>(iv,2);
if (vi != iv.end())
cout << *vi << endl;
List il;
il.push_back(1);
il.push_back(2);
il.push_back(3);
List::iterator li;
li = SlowFind<List>(il,3);
if (li != il.end())
cout << *li << endl;
return 0;
}
Last edited by ArkM; Nov 3rd, 2008 at 2:39 pm.
Reputation Points: 1234
Solved Threads: 347
Postaholic
Offline 2,001 posts
since Jul 2008