std::array : 固定長配列†
std::forward_list : 単方向リスト†
→ std::string
std::unordered_set : 順序なし集合(重複不可)†
std::unordered_multilist : 順序なし集合(重複可)†
std::map†
- 初期化
- 空の 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, "xx" } };
- 既存の 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" が print される
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::endl;
}
std::unordered_map : 順序なし連想配列(重複不可)†
std::unordered_multimap : 順序なし連想配列(重複可)†
queue†
queue†
#include <queue>
std::queue<string> q;
q.push( "hoge" );
q.push( "fuga" );
while( !q.empty() ) {
std::cout << q.front() << std::endl;
q.pop();
}
priprity_queue†
#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();
}