How to use std::find_end to search for the last occurrence of a sequence in a vector with C++

1 Answer

0 votes
#include <algorithm>
#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> vec {1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 3, 4, 7};
    std::vector<int>::iterator it;
 
    std::vector<int> to_find {1, 2, 3};
 
    it = std::find_end(vec.begin(), vec.end(), to_find.begin(), to_find.end());
    if (it == vec.end()) {
        std::cout << "sequence not found\n";
    } else {
        std::cout << "last occurrence is at index: "
                  << std::distance(vec.begin(), it) << "\n";
    }
}


 
/*
run:
   
last occurrence is at index: 9
  
*/


 



answered Dec 15, 2024 by avibootz
...