#include <iostream>
#include <vector>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <string>
struct User {
int id;
std::string name;
int age;
};
int main() {
std::vector<User> users;
users.reserve(100);
users.push_back({1, "Alice", 30});
users.push_back({2, "Bob", 25});
users.emplace_back(3, "Carol", 35);
std::sort(users.begin(), users.end(),
[](const User& a, const User& b) { return a.age < b.age; });
auto it = std::find_if(users.begin(), users.end(),
[](const User& u) { return u.name == "Bob"; });
std::map<std::string, int> scores;
scores["team_a"] = 100;
scores.insert({"team_b", 85});
scores.emplace("team_c", 92);
for (const auto& [team, score] : scores) {
std::cout << team << ": " << score << "\n";
}
std::unordered_map<int, std::string> id_to_name;
id_to_name.reserve(1000);
for (const auto& user : users) {
id_to_name[user.id] = user.name;
}
if (auto found = id_to_name.find(2); found != id_to_name.end()) {
std::cout << "Found: " << found->second << "\n";
}
std::vector<int> ages;
ages.reserve(users.size());
std::transform(users.begin(), users.end(), std::back_inserter(ages),
[](const User& u) { return u.age; });
std::vector<User> adults;
std::copy_if(users.begin(), users.end(), std::back_inserter(adults),
[](const User& u) { return u.age >= 30; });
return 0;
}