Searching backwards bool is_negative(int i) { return (i < 0); } int main() { list l; // fill values... list::reverse_iterator i = find_if(l.rbegin(), l.rend(), is_negative); if (i != l.rend()) cout << "last negative is " << *i << endl; }