stl

14
STL Naoya NAKAZAWA

Upload: naoya-nakazawa

Post on 22-Dec-2014

1.760 views

Category:

Technology


0 download

DESCRIPTION

Abount STL (Japanese)

TRANSCRIPT

Page 1: STL

STLNaoya NAKAZAWA

Page 2: STL

STL?

Standard Template Libraryの略

C++標準ライブラリ

Page 4: STL

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

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

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

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

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

iterator

イテレーターとは、コンテナの要素をスキャンするポイントのようなもの

Page 10: STL

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

algorithm

さまざまなアルゴリズムを集めたもの

検索とか、追加や削除、ソートなど

Page 12: STL

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

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

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();}