この記事は2019年07月20日に投稿しました。
目次
- 作者: ビャーネ・ストラウストラップ,Bjarne Stroustrup,柴田望洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/02/28
- メディア: 単行本
- この商品を含むブログ (11件) を見る
1. はじめに
こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC++で連想配列std::unordered_mapを使用する方法についてです。
2. C++で連想配列std::unordered_mapを使用する
C++の連想配列std::unordered_mapですが、以下のような特徴があります。
特徴
- 要素へは順番ではなく、キーによりアクセスします。
- キー順には並び替えられません。
- 同一キーは許されません。
基本的な使い方
要素へのアクセス:[]演算子の場合
// 変数を宣言します。 // テンプレートの第1引数がキーの型、第2引数が値の型になります。 std::unordered_map<std::string, int> map; // キー"key1"に値"10"を設定します。 map["key1"] = 10; // キー"key1"の値を取得します。 int value1 = map["key1"];
要素へのアクセス:atメソッドの場合
// 変数を宣言します。 std::unordered_map<std::string, int> map; // キー"key1"に値"10"を設定します。 map.at("key1") = 10; // キー"key1"の値を取得します。 int value1 = map.at("key1"); // 設定していないキー"key2"の値を取得した場合、out_of_range例外が投げられます。 int value2 = map.at("key2");
3. おわりに
std::unoredred_mapはハッシュテーブルで実装されているようです。
同じような機能でstd::mapもありますが、こちらは平衡二分検索木で実装されているようです。
と言われても、両者の違いについてはあまりよくわかっていません。
そのうち詳しく調べたいと思います。
基礎からしっかり学ぶC++の教科書 C++14対応 マイクロソフト関連書
- 作者: 矢吹太朗
- 出版社/メーカー: 日経BP
- 発売日: 2017/08/01
- メディア: Kindle版
- この商品を含むブログを見る
紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。
私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。
また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。
EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688