map的三种类型中只有multimap是不支持下标访问和写入的,因为键值不唯一

#include <iostream>
#include "unordered_map"
using namespace std;

int main() {
    string s;
    unordered_map<string, string> myMap;
    while (getline(cin, s)) { // 注意 while 处理多个 case
        // cout << a + b << endl;
        if (s != "@END@") {
            int pos = s.find(']');
            myMap[s.substr(0, pos + 1)] = s.substr(pos + 2);
            myMap[s.substr(pos + 2)] = s.substr(0, pos + 1);
        } else {
            int n;
            cin >> n;
            getchar();
            while (n--) {
                string ask;
                getline(cin, ask);
                auto it = myMap.find(ask);
                if (it == myMap.end()) cout << "what?" << endl;
                else {
                    string ans = it->second;
                    if (ask[0] != '[') {
                        ans = ans.substr(1, ans.size() - 2);
                    }
                    cout << ans << endl;
                }


            }
        }
    }
}
// 64 位输出请用 printf("%lld")