STL メンバ関数とコンテナ
メンバ関数についてのみ調べていた積りが、アルゴリズム混在であることが判った。
この Wiki は、題名の変更が出来ない(削除して新規すればできる…面倒!)ので、内部表題のみ変更。
アルゴリズムとメンバ関数
コンテナには、標準操作を提供する関数(メンバ関数)が実装されている。このメンバ関数とコンテナの相対的な関係を整理し、見やすくしたものを記載。
メンバ関数で提供されない機能も、アルゴリズム(そういう頁はまだ無い)で、STL用各種関数が更に提供されている。
※例:ベクトル配列のソートなど「メンバ関数」にない機能も、アルゴリズム(外部汎用関数)の sort() 他、多数提供あり。
アルゴリズム
「メンバ関数一覧」から「アルゴリズム」と重複すると思われる関数についての再確認メモ。※内容非保証
- 要素の追加・変更・削除、及び、挿入・結合
- 要素の変更・挿入・結合
- marge - 連結
- replace - 要素の置き換え
例:replace(it_start, it_end, val, replace_val);
戻り値:なし
- 要素の削除
- remove
- remove_if
- unique - 重複削除
- 検索・抽出、及び、比較
- 検索(主に未ソートデータ検索)
※その他:adjacent_find,equal,find_if,find_end,mismatch ...
- 検索(主に未ソートデータ検索)
- find
- find_first_not_of
- find_first_of
- find_last_not_of
- find_last_of
- 一致カウント
- count - 指定値一致カウント
- 抽出(抽出・検索関連)
※その他:binary_search ...
- lower_bound
- upper_bound
- equal_range
- その他
- ソート
※その他:nth_element,stable_sort,partial_sort,partial.sort_copy ...
- ソート
- sort
- reverse - 逆順ソート(一般にソート含めない?)
- コピー・交換
- swap
- copy
▲上へ
メンバ関数
コンテナはデータ要素の実態+データ処理メンバ関数(基本的に各コンテナ共通仕様)を含めた機能を提供する。
※注!:メンバ関数としているが「アルゴリズム」が混在してます。
メンバ関数(機能別)
※内容非保証(A〜Z順を再編集しただけの表)
シーケンス | アダプタ | 連想コンテナ | 特殊コンテナ | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
メンバ関数 | v | d | l | st | q | pq | s | ms | m | mm | memo | storing | |
イテレータ | |||||||||||||
begin | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
end | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
rbegin | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
rend | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
要素の参照・代入 | |||||||||||||
参照(ランダム)・代入 | |||||||||||||
at | ○ | ○ | × | - | - | - | - | ○ | |||||
参照(シリアル)のみ | |||||||||||||
front | ○ | ○ | ○ | ○ | - | - | - | - | |||||
back | ○ | ○ | ○ | ○ | - | - | - | - | |||||
top | ○ | ○ | - | - | - | - | アダプタ | ||||||
要素の追加・変更・削除、及び、挿入・結合 | |||||||||||||
pop/push(要素の追加と削除:(シリアル)) | |||||||||||||
pop | ○ | ○ | ○ | - | - | - | - | アダプタ | |||||
pop_back | ○ | ○ | ○ | - | - | - | - | ○ | |||||
pop_front | × | ○ | ○ | - | - | - | - | ||||||
push | ○ | ○ | ○ | - | - | - | - | アダプタ | |||||
push_back | ○ | ○ | ○ | - | - | - | - | ||||||
push_front | × | ○ | ○ | - | - | - | - | ||||||
要素の追加(シリアル) | |||||||||||||
insert | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
append | - | - | - | - | - | - | - | - | - | - | string | ○ | |
要素の変更・挿入・結合 | |||||||||||||
splice | ○ | - | - | - | - | list:移動挿入 | |||||||
* | marge | ○ | - | - | - | - | list:連結 | ||||||
* | replace | string:置換 | ○ | ||||||||||
要素の削除 | |||||||||||||
* | remove | ○ | - | - | - | - | list | ||||||
* | remove_if | ○ | - | - | - | - | list | ||||||
erase | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
clear | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
* | unique | ○ | - | - | - | - | list:重複削除 | ||||||
要素数・メモリサイズの取得・確保・変更 | |||||||||||||
要素数・文字数関連 | |||||||||||||
empty | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
size | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
length | - | - | - | - | - | - | - | - | - | - | string | ○ | |
メモリサイズ関連 | |||||||||||||
resize | ○ | ○ | ○ | - | - | - | - | ○ | |||||
reserve | ○ | × | × | - | - | - | - | vector,string | ○ | ||||
capacity | ○ | × | × | - | - | - | - | vector,string | ○ | ||||
max_size | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |||||
検索・抽出、及び、比較 | |||||||||||||
検索 | |||||||||||||
? | find | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | ○ |
rfind | string | ○ | |||||||||||
* | find_first_not_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
* | find_first_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
* | find_last_not_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
* | find_last_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
一致カウント | |||||||||||||
* | count | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
抽出 | |||||||||||||
* | lower_bound | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
* | upper_bound | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
* | equal_range | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
比較 | |||||||||||||
key_comp | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | ||
value_comp | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | ||
compare | - | - | - | - | - | - | - | - | - | - | string | ○ | |
その他 | |||||||||||||
ソート | |||||||||||||
* | sort | ○ | - | - | - | - | list:sort | ||||||
* | reverse | ○ | - | - | - | - | list:r_sort | ||||||
コピー・交換 | |||||||||||||
? | swap | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
assign | ○ | ○ | ○ | - | - | - | - | ar cp,sz | ○ | ||||
* | copy | - | - | - | - | - | - | - | - | - | - | string | ○ |
その他 | |||||||||||||
c_str | - | - | - | - | - | - | - | - | - | - | string:cast | ○ | |
substr | - | - | - | - | - | - | - | - | - | - | string:加工 | ○ | |
未整理 | |||||||||||||
data | - | - | - | - | - | - | - | - | - | - | string:? | ○ | |
get_allocator | ○ | ○ | ○ | ○ | ○ | ○ | ○ | allocator取得 | ○ | ||||
シーケンス:v=vector d=deque l=list 連想コンテナ:s=set ms=multiset m=map mm=multimap アダプタ:st=stack q=queue pq=priority_queue ※アルゴリズムの使用は、<algorithm> のインクルードが必要。 ※ */? 印がアルゴリズムの可能性有り。 ※その他がメンバ関数と断定もしない。(要確認) |
編集
▲上へ
A〜Z順
メンバ関数、アルゴリズム混在。※内容非保証(VC++2005 入力補助メンバ関数表示を基準に起表)
シーケンス | アダプタ | 連想コンテナ | 特殊コンテナ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
メンバ関数 | v | d | l | st | q | pq | s | ms | m | mm | memo | storing |
append | - | - | - | - | - | - | - | - | - | - | string | ○ |
assign | ○ | ○ | ○ | - | - | - | - | ○ | ||||
at | ○ | ○ | × | - | - | - | - | ○ | ||||
back | ○ | ○ | ○ | ○ | - | - | - | - | ||||
begin | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
c_str | - | - | - | - | - | - | - | - | - | - | string | ○ |
capacity | ○ | × | × | - | - | - | - | vector,string | ○ | |||
clear | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
compare | - | - | - | - | - | - | - | - | - | - | string | ○ |
copy | - | - | - | - | - | - | - | - | - | - | string | ○ |
count | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
data | - | - | - | - | - | - | - | - | - | - | string | ○ |
empty | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
end | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
equal_range | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
erase | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
find | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | ○ |
find_first_not_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
find_first_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
find_last_not_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
find_last_of | - | - | - | - | - | - | - | - | - | - | string | ○ |
front | ○ | ○ | ○ | ○ | - | - | - | - | ||||
get_allocator | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
insert | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
key_comp | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
length | - | - | - | - | - | - | - | - | - | - | string | ○ |
lower_bound | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
max_size | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
marge | ○ | - | - | - | - | list | ||||||
pop | ○ | ○ | ○ | - | - | - | - | アダプタ | ||||
pop_back | ○ | ○ | ○ | - | - | - | - | ○ | ||||
pop_front | × | ○ | ○ | - | - | - | - | |||||
push | ○ | ○ | ○ | - | - | - | - | アダプタ | ||||
push_back | ○ | ○ | ○ | - | - | - | - | |||||
push_front | × | ○ | ○ | - | - | - | - | |||||
rbegin | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
remove | ○ | - | - | - | - | list | ||||||
remove_if | ○ | - | - | - | - | list | ||||||
rend | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
replace | string | ○ | ||||||||||
reserve | ○ | × | × | - | - | - | - | vector,string | ○ | |||
resize | ○ | ○ | ○ | - | - | - | - | ○ | ||||
reverse | ○ | - | - | - | - | list | ||||||
rfind | string | ○ | ||||||||||
size | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
sort | ○ | - | - | - | - | list | ||||||
splice | ○ | - | - | - | - | list | ||||||
substr | - | - | - | - | - | - | - | - | - | - | string | ○ |
swap | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||||
top | ○ | ○ | - | - | - | - | アダプタ | |||||
unique | ○ | - | - | - | - | list | ||||||
upper_bound | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
value_comp | - | - | - | - | - | - | ○ | ○ | ○ | ○ | 連想コンテナ | |
シーケンス:v=vector d=deque l=list 連想コンテナ:s=set ms=multiset m=map mm=multimap アダプタ:st=stack q=queue pq=priority_queue |
※一応チェックしたが、誤記の可能性も有るので注意!(非保証!)
※現状 a~z順、機能別の方が便利だが、別途追加時の管理が大変なので現状維持。
▲上へ
リンク
内部リンク
- C/C++ C++/CLI C# 関連
- VC++ 2005 Express のインストール
- C/C++ の簡単なプログラム例
- C/C++ ソート(並べ替え)
- C/C++ テストの実行
- C/C++ STL(Standard Template Library)
- 変数・定数
- プログラムの分割/ダイナミックリンクライブラリ など
- その他
- C/C++ その他::書式文字/ESC code など
- VB2005リファレンス(覚え書き)
- SQL文:SQLステートメント
- VBA(VisualBasic for Applications)
外部リンク
- 現在ありません
▲上へ
2008年06月05日(木) 06:01:02 Modified by cafeboy1