簡単な使用例を示すことから始めます。
社会保障 ID データベースの問題を考えてみましょう。C++ コードでは としてモデル化されており
std::unordered_map、そのキーは個人の社会保障 ID であり、その値はその個人std::stringのフルネーム (例:std::unordered_map<int, std::string> DB;) です。std::unordered_mapまた、個人の ID (つまりのキー)に基づいて昇順に並べ替えられたこのデータベースを印刷する要求があることも考慮してください。単純に、以下のコード例のように、要求された基準に従って
std::sortをソートしてから印刷するために使用することを考えるでしょう:std::unordered_map
std::sort(DB.begin(), DB.end());
for(auto p : DB) std::cout << "ID(" << p.first
<< ") - "
<< p.second
<< std::endl;
- ただし、 aまたは a
std::sortのいずれかの範囲で を使用するとコンパイラ エラーが発生するため、これは当てはまりません。std::unordered_mapstd::unordered_set
質問:
- STL の順序付けられていないコンテナーを並べ替えできないのはなぜ
std::sortですか? std::unordered_mapaまたは aをソートする正当で効率的な方法はありますかstd::unordered_set?