C++学習(9):関連コンテナmap、multimap、unordered_mapの比較と使い方 2732 ワード C\C++ 前言:C++ Java 特長map TreeMap 要素keyは一意で秩序があるmultimap 要素keyは一意ではありません.その他はmapと同じです.unordered_map HashMap 要素keyは一意ですが、無秩序です.本文:学習コンテナはまずコンテナの記憶構造を学習し,次に添削改行の方法を学習する.#include #include #include #include using namespace std; void mapTest() { map student; //C++ map Java TreeMap,key , // 1 student["xiaoB"] = 18; student["xiaoA"] = 19; //map [], student["xiaoA"] = 19; //map key , xiaoA student.insert(pair("xiaoC", 20)); // insert() // 2 student.erase("xiaoC"); // 3 student["xiaoA"] = 20; student.at("xiaoB") = 20; // 4 map::iterator ite = student.find("xiaoA"); //find if (ite != student.end()) { cout << ite->first << ":" << ite->second << endl; } int cnt = student.count("xiaoF"); //count key (0 1) cout << cnt << endl; for (map::iterator ite = student.begin(); ite != student.end(); ite++) { cout << ite->first << ":" << ite->second << endl; } } void multimapTest() { multimap student; //multimap key, map student.insert(pair("xiaoB", 18)); student.insert(pair("xiaoC", 18)); student.insert(pair("xiaoA", 20)); student.insert(pair("xiaoC", 17)); int cnt = student.count("xiaoC"); // cout << cnt << endl; for (map::iterator ite = student.begin(); ite != student.end(); ite++) { cout << ite->first << ":" << ite->second << endl; } } void unordered_map_Test() { unordered_map student; //C++ unordered_map Java HashMap , student.insert(pair("xiaoB", 18)); student.insert(pair("xiaoC", 18)); student.insert(pair("xiaoA", 20)); student.insert(pair("xiaoC", 17)); for (unordered_map::iterator ite = student.begin(); ite != student.end(); ite++) { cout << ite->first << ":" << ite->second << endl; } } int main() { mapTest(); multimapTest(); unordered_map_Test(); } まとめ:C++とJavaのコンテナの多くは共通しており,比較的把握している. linux印刷ログ Apache2.4に設定しておきたい設定項目