C++のコンテナ list メモ
オブジェクトを格納するときは,
が必要.
使えそうな関数.
push_front() | 先頭に値を追加 |
push_back() | 末尾に値を追加 |
pop_front() | 先頭の値を削除 |
pop_back() | 末尾の値を削除 |
insert() | 指定したところに挿入 |
marge() | list1.marge(list2) list1に結合され2はカラになる |
sort() | lisq1.sort() ソートされる |
size() | サイズ |
empty() | 空かどうか |
begin() | 先頭を指す反復子 |
end() | 末尾を指す反復子 |
使い方メモ.
#include <iostream> #include <list> using namespace std; int main(){ list<char> li; cout << "# push_back()" << endl; for(char c='A'; c<='Z'; c++){ li.push_back(c); } list<char>::iterator it; it = li.begin(); while(it != li.end()){ cout << *it; it++; } cout << endl; cout << "------------------------------" << endl; cout << "# push_front()" << endl; for(char c='a'; c<='z'; c++){ li.push_front(c); } it = li.begin(); while(it != li.end()){ cout << *it; it++; } cout << endl; cout << "------------------------------" << endl; cout << "# size()" << endl; cout << li.size() << endl; cout << "------------------------------" << endl; cout << "# 後ろから10こpop:pop_back()" << endl; for(int i=0; i<10; i++){ li.pop_back(); } cout << "# 前から5こpop:pop_front()" << endl; for(int i=0; i<10; i++){ li.pop_front(); } it = li.begin(); while(it != li.end()){ cout << *it; it++; } cout << endl; cout << "------------------------------" << endl; cout << "# sort()" << endl; li.sort(); it = li.begin(); while(it != li.end()){ cout << *it; it++; } cout << endl; cout << "------------------------------" << endl; cout << "# marge()" << endl; list<char> li2; for(char c='0'; c<='9'; c++){ li2.push_back(c); } list<char>::iterator it2 = li2.begin(); cout << "これを結合:"; while(it2 != li2.end()){ cout << *it2; it2++; } cout << endl; li.merge(li2); cout << "li:"; it = li.begin(); while(it != li.end()){ cout << *it; it++; } cout << endl; cout << "li2:" << endl; it2 = li2.begin(); while(it2 != li2.end()){ cout << *it2; it2++; } cout << endl; cout << "li2はからになる." << endl; }