stl
DESCRIPTION
Abount STL (Japanese)TRANSCRIPT
![Page 1: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/1.jpg)
STLNaoya NAKAZAWA
![Page 2: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/2.jpg)
STL?
Standard Template Libraryの略
C++標準ライブラリ
![Page 3: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/3.jpg)
http://www.sgi.com/tech/stl/
![Page 4: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/4.jpg)
Container Class
vector deque list slist
bit_vector set map multiset
multimap hash_set hash_map hash_multiset
hash_multimap hash char_traits basic_string
rope stack queue priority_queue
bitset
![Page 5: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/5.jpg)
list - 双方向リスト#include <list>
using namespace std;
void main(){ list<int> l;
for (int i = 0; i < 10; i++) { // リストに要素を追加する l.push_back(i); }
// リストの先頭に要素を追加する l.push_front(100);
// リストの最後の要素を削除する l.pop_back();}
![Page 6: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/6.jpg)
vector - 動的配列#include <iostream>#include <vector>
using namespace std;
int main(){ vector<int> v;
for (int i = 0; i < 10; i++) { // 要素を追加する v.push_back(i); }
for (int i = 0; i < 10; i++) { // それぞれの要素を表示する cout << v[i] << endl; }
// すべて削除する v.clear();}
![Page 7: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/7.jpg)
map - 連想配列#include <iostream>#include <map>
using namespace std;
int main(){ map<string, int> m;
// 値を入れる m["hoge"] = 10; m["geho"] = 21;
// 値を表示する cout << m["hoge"] << endl; cout << m["geho"] << endl;}
![Page 8: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/8.jpg)
stack - スタック#include <iostream>#include <stack>
using namespace std;
int main(){ stack<int> s;
for (int i = 0; i < 10; i++) { // スタックに積む s.push(i); }
// スタックから取り出す s.pop();
// スタックの先頭を取り出す cout << s.top() << endl;}
![Page 9: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/9.jpg)
iterator
イテレーターとは、コンテナの要素をスキャンするポイントのようなもの
![Page 10: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/10.jpg)
iterator - vector#include <iostream>#include <vector>
using namespace std;
int main(){ vector<int> v;
for (int i = 0; i < 10; i++) { v.push_back(i); }
// すべての要素を表示する for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << endl; }
v.clear();}
![Page 11: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/11.jpg)
algorithm
さまざまなアルゴリズムを集めたもの
検索とか、追加や削除、ソートなど
![Page 12: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/12.jpg)
algorithms
for_each find find_if count equal
search copy swap transform replace
fill generate remove unique reverse
rotate sort merge min max
itoa power
![Page 13: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/13.jpg)
find#include <iostream>#include <vector>#include <algorithm>
using namespace std;
int main(){ vector<int> v;
for (int i = 0; i < 10; i++) { v.push_back(i); }
// 5の要素を検索する vector<int>::iterator it = find(v.begin(), v.end(), 5); cout << *it << endl;
v.clear();}
![Page 14: STL](https://reader033.vdocument.in/reader033/viewer/2022052820/54981a1fb479592b748b45a5/html5/thumbnails/14.jpg)
count#include <iostream>#include <vector>#include <algorithm>
using namespace std;
int main(){ vector<int> v;
for (int i = 0; i < 10; i++) { v.push_back(i); }
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << endl; }
// 5が含まれている要素の数を数える int c = count(v.begin(), v.end(), 5); cout << "Number of 5: " << c << endl;
v.clear();}