Il y a 2 vecteurs non triés de int v1 et v2, où v1 contient un sous-ensemble de v2C++, std :: transformer remplacer les éléments par indices
v1: 8 12 4 17
v2: 6 4 14 17 9 0 5 12 8
Est-il possible, comment remplacer les éléments de v1 par indices de ses positions dans v2?
v1: 8 7 1 3
Il n'y a aucun problème pour écrire un tel algorithme en utilisant 2 pour les cycles ...
Mais est-il une solution à l'aide en utilisant std :: transformer?
@ Jared Hoberock: Merci, pourrais-je demander la soulution sans expressions lambda? Je n'ai aucune expérience avec eux ... – justik
@justik: C'est juste une manière C++ 11 de créer un objet fonction. Il suffit donc de faire un type avec cette fonction comme son 'operator()'. Un objet qui prend une référence à un 'std :: Vector' en tant que paramètre constructeur et membre de classe. –
@justik: J'ai mis à jour l'exemple pour fournir une solution C++ 03 qui omet la fonction lambda. –