у меня есть вектор пар целых чисел, который выглядит как-то так:эффективный способ получить уникальные элементы из вектора пар
(0, 1)
(1, 9)
(2, 3)
(6, 1)
(4, 0)
Я хочу, чтобы извлечь уникальные элементы там, так что результат выглядит следующим образом:
0, 1, 9, 2, 3, 6, 4
(в основном только все числа без дубликатов)
на данный момент я делаю это так:
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;
}
Есть ли более эффективный способ сделать это?
использование '' set' или карта '. –
Вас интересует заказ? – clcto
@clcto no, order not matter – vgeclair