1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #include <algorithm>
#include <iterator>
#include <iostream>
// N'arrive qu'en C++14 ...
// Je vous laisse rajouter ce qu'il manque pour les vecteurs...
namespace std
{
template< class T, size_t N >
std::reverse_iterator<T*> rbegin( T (&array)[N] ) { return std::reverse_iterator<T*>(&array[N]); }
template< class T, size_t N >
std::reverse_iterator<T*> rend( T (&array)[N] ) { return std::reverse_iterator<T*>(&array[0]); }
}
int main ()
{
char tab1[]={ 'a', 'b', 'c', 'd', 'e', 'f', 'g' };
char tab2[]={ 'f', 'a', 'e', 'a', 'b', 'b', 'c', 'd', 'a', 'e' };
std::for_each(std::begin(tab1), std::end(tab1),
[&tab2](char e) {
auto wh = std::find(std::rbegin(tab2), std::rend(tab2), e);
std::cout << e << " -> " << std::distance(wh, std::rend(tab2)) << "\n";
});
}
// Vim: let $CXXFLAGS='-std=c++0x' |
Partager