「std::map」の版間の差分
提供: C++入門
(ページの作成:「std::map とは、C++のSTLコンテナの1つで、連想配列です。登録した順番と関係のないstd::tr1::unordered_mapもあります。 '''...」) |
(相違点なし)
|
2014年11月24日 (月) 00:44時点における版
std::map とは、C++のSTLコンテナの1つで、連想配列です。登録した順番と関係のないstd::tr1::unordered_mapもあります。
読み方
- std::map
- えすてぃーでぃー まっぷ
目次
概要
- erase
- 要素を削除します
- find
- 要素を検索します
- insert
- 要素を挿入します
- size
- 要素数を返します
- clear
- すべての要素を削除します
- empty
- mapが空なら真を返します
[]演算子
mapは、[]演算子を用いて、添字のようにアクセスできます。存在しないキーにアクセスした場合、自動的に要素が追加されていまいます。
ヘッダファイル
#include <map>
要素の追加
std::mapは、2つの方法で要素を追加できます。
- []演算子を用いて要素を追加します。
- insert を用いて要素を追加します。
map<int, int> m1; m1.insert( map<int, int>::value_type(1, 100);
map<int, int> m1; m1[1] = 100;
std_map1.cpp の例
ソースコード std_map1.cpp
/* * std_map1.cpp * Copyright (C) 2014 kaoru <kaoru@bsd> */ #include <iostream> #include <map> int main(int argc, char const* argv[]) { std::map<int,int> m1; m1[1] = 100; m1[2] = 200; m1[3] = 300; for (auto& x:m1) { std::cout << x.first << " => " << x.second << std::endl; } return 0; }
コンパイル
c++ -std=c++11 std_map1.cpp -o std_map1
実行例
% ./std_map1 1 => 100 2 => 200 3 => 300
[]演算子で存在しない要素にアクセスすると自動的に追加される
ソースコード std_map_test1.cpp
/* * std_map1.cpp * Copyright (C) 2014 kaoru <kaoru@bsd> */ #include <iostream> #include <map> using namespace std; int main(int argc, char const* argv[]) { std::map<int,int> m1; cout << m1.size() << endl; // 当然 0 cout << m1[1] << endl; // 存在していないキーにアクセスする cout << m1.size() << endl; // 上の行のアクセスの結果、1要素追加されている for (auto& x:m1) { // キー1, 値 0 が表示される std::cout << x.first << " => " << x.second << std::endl; } return 0; }
コンパイル
c++ -std=c++11 std_map_test1.cpp -o std_map_test1
実行例
% ./std_map_test1 0 0 1 1 => 0