题解
【基础】户口统计
1 条题解
-
0
#include <iostream> #include <map> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { map<string, vector<string>> families; string currentHead; string line; while (true) { getline(cin, line); if (line.empty()) continue; if (line[0] == '$') { break; } else if (line[0] == '#') { // 新户主 currentHead = line.substr(1); families[currentHead].push_back(currentHead); // 户主本人加入家庭 } else if (line[0] == '+') { // 家庭成员 string member = line.substr(1); if (!currentHead.empty()) { families[currentHead].push_back(member); } } else if (line[0] == '?') { // 查询请求 string queryName = line.substr(1); if (families.find(queryName) != families.end()) { // 找到户主,输出家庭成员(排序) vector<string>& members = families[queryName]; sort(members.begin(), members.end()); for (const string& name : members) { cout << name << endl; } } else { cout << "no data" << endl; } } } return 0; }
- 1