最初の要素を検索するならstd::findが有りますが、後ろから検索するアルゴリズムは標準には有りません。そこでreverse_iteratorを使用してみます。
std::vector<int> v; v.push_back(10); v.push_back(20); std::vector<int>::reverse_iterator ritr; if ((ritr = std::find(v.rbegin(), v.rend(), 20)) != v.rend()) { std::cout << *ritr << std::endl; std::vector<int>::iterator p; //普通のイテレータも取り出せるが、一つずらす必要有り。 p = ritr.base(); --p; std::cout << *p << std::endl; }