Я думаю, вам нужен std::vector
связанного типа.
struct Name_pair {
double age;
string name;
};
Чем вы можете использовать std::vector<Name_pair>
и использовать лямбду
auto comparator = [](const Name_pair& first, const Name_pair& second){return first.age <second.age;};
чтобы отсортировать ваш вектор с std::sort
.
Name_pairs = std::vector<Name_pair>;
// fill vector
std::sort(Name_pairs.begin(), Name_pairs.end(), comparator);
Вот рабочий пример.
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
struct Name_pair {
double age;
std::string name;
};
int main() {
std::vector<Name_pair> Name_pairs{{13, "Hallo"}, {32, "Welt"}, {1, "Georg"}};
auto comparator = [](const Name_pair& first, const Name_pair& second) { return first.age < second.age; };
std::sort(Name_pairs.begin(), Name_pairs.end(), comparator);
for (const auto np : Name_pairs) {
std::cout << np.name << "\n";
}
}
печатает
Georg
Hallo
Welt