j'ai un vecteur de paires d'entiers qui ressemble en quelque sorte comme ça:manière efficace d'obtenir des éléments uniques à partir d'un vecteur de paires
(0, 1)
(1, 9)
(2, 3)
(6, 1)
(4, 0)
Je veux extraire des éléments uniques à partir de là, de sorte que le résultat semble que suit:
0, 1, 9, 2, 3, 6, 4
(fondamentalement juste tous les nombres sans doublons)
En ce moment je fais comme ça:
std::vector<int> getElements(std::vector<std::pair<int, int>> S) {
std::vector<int> V;
for (std::vector<std::pair<int, int>>::iterator i = S.begin(); i != S.end(); i++) {
if (std::find(V.begin(), V.end(), i->first) == V.end()) {
V.push_back(i->first);
}
if (std::find(V.begin(), V.end(), i->second) == V.end()) {
V.push_back(i->second);
}
}
return V;
}
Existe-t-il un moyen plus efficace de le faire?
utilisation '' set' ou carte '. –
Vous souciez-vous de l'ordre? – clcto
@clcto non, l'ordre n'a pas d'importance – vgeclair