2

次の場合に、C++ で Hashmap を開始するためのコードを教えてください。

(int、string [])の(キー、値)のマッピングが必要です。

したがって、私のマップには、あるサイズの文字列配列を指す int キーが必要です。C++ でこのハッシュ マップを宣言して使用するにはどうすればよいですか。

これで私を助けてください。前もって感謝します

4

1 に答える 1

3

of s of sを使用できますが、C++ ではより適切なオプションが提示されます。各マップ エントリ内でベクトルを管理することなく、同じキーの複数のアイテムを格納できます。std::map std::unordered_mapstd::vectorstd::stringunordered_multimap

マップの使用例を次に示します。

using namespace std;

int main(int argc, const char* argv[]) {
    unordered_map<int,vector<string>> mvs;
    vector<string> items1;
    items1.push_back("hello");
    items1.push_back("world");
    vector<string> items2;
    items2.push_back("quick");
    items2.push_back("brown");
    items2.push_back("fox");
    mvs[1] = items1;
    mvs[200] = items2;
    mvs[4].push_back("another_one");
    for(unordered_map<int,vector<string>>::const_iterator iter = mvs.begin() ; iter != mvs.end() ; iter++) {
        cout << iter->first << ":";
        for (vector<string>::const_iterator jter = iter->second.begin() ; jter != iter->second.end() ; jter++) {
            cout << *jter << " ";
        }
        cout << endl;
    }
    return 0;
}

ハッシュマップに言及するために編集されました。

于 2012-04-19T19:43:21.447 に答える