Lang/C++/C++11/コンテナ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#aa38371b]
#contents();
/////////////////////////////////////////////////////////...
* std::array : 固定長配列 [#yd0410fc]
- std::vector が可変長配列であるのに対し、 std::array は...
- 組み込み配列同様、[] 演算子を使用出来る。
std::array<TYPE, SIZE>
TYPE: 配列にする型
SIZE: 配列要素数
//=======================================================...
** 初期化 [#ka1a558e]
- デフォルトのオブジェクト構築。各要素はデフォルト初期化...
std::array<int, 4> a;
- 初期化子リストから array オブジェクトを構築。各要素はデ...
std::array<int, 4> a = {};
- 初期化子リストから array オブジェクトを構築
std::array<int, 4> a = {1, 2, 3, 4};
- 別の array オブジェクトの代入によるコピー初期化
std::array<int, 4> a = b;
- move 構築。渡された array オブジェクトを *this に移動す...
std::array<int, 4> a = std::move(a0);
/////////////////////////////////////////////////////////...
* std::forward_list : 単方向リスト [#ac02db07]
- 単方向にのみ辿れるリスト
/////////////////////////////////////////////////////////...
* [[std::string>Lang/C++/C++11/コンテナ/string]] [#o4ecc4...
→ [[std::string>Lang/C++/C++11/コンテナ/string]]
/////////////////////////////////////////////////////////...
* std::unordered_set : 順序なし集合(重複不可) [#ibda44d6]
/////////////////////////////////////////////////////////...
* std::unordered_multilist : 順序なし集合(重複可) [#y13...
/////////////////////////////////////////////////////////...
* std::map [#a965a67c]
- 初期化
-- 空の map を生成
typedef std::map<int, char*> name_map_t;
name_map_t name_map;
-- 要素を入れて生成
typedef std::map<int, char*> name_map_t;
name_map_t name_map = { { 1, "aa" }, { 2, "bb" }, { 32, ...
-- 既存の map からコピーして生成
name_map_t nn = name_map;
- 要素の挿入
name_map_t name_map;
name_map[23] = "test";
name_map[91] = "hoge";
...
- 要素の検索
auto it = name_map.find( 23 );
// 存在するので、その iterator が返る
std::cout << it->second << std::endl; // "test" が pr...
int key_val = 71;
it = name_map.find( key_val );
// 存在しないので、end(); の iterator が返る
if( it == name_map.end() ) {
// ここを通る
std::cout << "Not found: [key:" << key_val << "]" <...
}
/////////////////////////////////////////////////////////...
* std::unordered_map : 順序なし連想配列(重複不可) [#hf8...
/////////////////////////////////////////////////////////...
* std::unordered_multimap : 順序なし連想配列(重複可) [#...
/////////////////////////////////////////////////////////...
* queue [#jef2709a]
** queue [#c380237b]
#include <queue>
std::queue<string> q;
q.push( "hoge" );
q.push( "fuga" );
while( !q.empty() ) {
std::cout << q.front() << std::endl;
q.pop();
}
- コピー・ムーブが可能
- pop() は値を返さない
** priprity_queue [#i6594f09]
#include <queue>
std::priority_queue<string> q;
q.push( "hoge" );
q.push( "fuga" );
q.push( "foo" );
q.push( "bar" );
while( !q.empty() ) {
std::cout << q.front() << std::endl;
q.pop();
}
- コピー・ムーブが可能
- pop() は値を返さない
終了行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#aa38371b]
#contents();
/////////////////////////////////////////////////////////...
* std::array : 固定長配列 [#yd0410fc]
- std::vector が可変長配列であるのに対し、 std::array は...
- 組み込み配列同様、[] 演算子を使用出来る。
std::array<TYPE, SIZE>
TYPE: 配列にする型
SIZE: 配列要素数
//=======================================================...
** 初期化 [#ka1a558e]
- デフォルトのオブジェクト構築。各要素はデフォルト初期化...
std::array<int, 4> a;
- 初期化子リストから array オブジェクトを構築。各要素はデ...
std::array<int, 4> a = {};
- 初期化子リストから array オブジェクトを構築
std::array<int, 4> a = {1, 2, 3, 4};
- 別の array オブジェクトの代入によるコピー初期化
std::array<int, 4> a = b;
- move 構築。渡された array オブジェクトを *this に移動す...
std::array<int, 4> a = std::move(a0);
/////////////////////////////////////////////////////////...
* std::forward_list : 単方向リスト [#ac02db07]
- 単方向にのみ辿れるリスト
/////////////////////////////////////////////////////////...
* [[std::string>Lang/C++/C++11/コンテナ/string]] [#o4ecc4...
→ [[std::string>Lang/C++/C++11/コンテナ/string]]
/////////////////////////////////////////////////////////...
* std::unordered_set : 順序なし集合(重複不可) [#ibda44d6]
/////////////////////////////////////////////////////////...
* std::unordered_multilist : 順序なし集合(重複可) [#y13...
/////////////////////////////////////////////////////////...
* std::map [#a965a67c]
- 初期化
-- 空の map を生成
typedef std::map<int, char*> name_map_t;
name_map_t name_map;
-- 要素を入れて生成
typedef std::map<int, char*> name_map_t;
name_map_t name_map = { { 1, "aa" }, { 2, "bb" }, { 32, ...
-- 既存の map からコピーして生成
name_map_t nn = name_map;
- 要素の挿入
name_map_t name_map;
name_map[23] = "test";
name_map[91] = "hoge";
...
- 要素の検索
auto it = name_map.find( 23 );
// 存在するので、その iterator が返る
std::cout << it->second << std::endl; // "test" が pr...
int key_val = 71;
it = name_map.find( key_val );
// 存在しないので、end(); の iterator が返る
if( it == name_map.end() ) {
// ここを通る
std::cout << "Not found: [key:" << key_val << "]" <...
}
/////////////////////////////////////////////////////////...
* std::unordered_map : 順序なし連想配列(重複不可) [#hf8...
/////////////////////////////////////////////////////////...
* std::unordered_multimap : 順序なし連想配列(重複可) [#...
/////////////////////////////////////////////////////////...
* queue [#jef2709a]
** queue [#c380237b]
#include <queue>
std::queue<string> q;
q.push( "hoge" );
q.push( "fuga" );
while( !q.empty() ) {
std::cout << q.front() << std::endl;
q.pop();
}
- コピー・ムーブが可能
- pop() は値を返さない
** priprity_queue [#i6594f09]
#include <queue>
std::priority_queue<string> q;
q.push( "hoge" );
q.push( "fuga" );
q.push( "foo" );
q.push( "bar" );
while( !q.empty() ) {
std::cout << q.front() << std::endl;
q.pop();
}
- コピー・ムーブが可能
- pop() は値を返さない
ページ名: