c++ - How to identify if vector iterator has reached end of vector? -
i have vector of integers , want iterator point desired number (call 'test').
vector<int> vec; void find(std::vector<int>::iterator iter, int test) {     if((*iter)!=test){ ++iter;} } that problematic because iter might hit end of vector (if 'test' not in vector) , i'll run error.
is there anyway can perform like
if(iter!=vec.end()) and stop iteration without specifying vector in function? thank you!
you can take standard library approach , pass pair of iterators function:
template <typename iterator> void foo(iterator begin, iterator end,          typename std::iterator_traits<iterator>::value_type test) {   iterator = begin;   ....   if (iterator != end) { ... } } then have figure out algorithm find iterator pointing element value equal test. or call std::find , drop function.
auto = std::find(vec.begin(), vec.end(), test); if (it != vec.end()) { .... } 
Comments
Post a Comment