30

[KOSSA] C++ Programming - 15th Study - STL #1

Embed Size (px)

Citation preview

Page 1: [KOSSA] C++ Programming - 15th Study - STL #1
Page 2: [KOSSA] C++ Programming - 15th Study - STL #1
Page 3: [KOSSA] C++ Programming - 15th Study - STL #1

3

Bijarne Stroustrup

Alexander Stepanov

Page 5: [KOSSA] C++ Programming - 15th Study - STL #1

5

Page 6: [KOSSA] C++ Programming - 15th Study - STL #1

6

Page 7: [KOSSA] C++ Programming - 15th Study - STL #1

7

Page 8: [KOSSA] C++ Programming - 15th Study - STL #1

8

Page 9: [KOSSA] C++ Programming - 15th Study - STL #1
Page 10: [KOSSA] C++ Programming - 15th Study - STL #1

10

Page 11: [KOSSA] C++ Programming - 15th Study - STL #1
Page 12: [KOSSA] C++ Programming - 15th Study - STL #1

12

std::vector

std::deque

std::list

Page 13: [KOSSA] C++ Programming - 15th Study - STL #1
Page 14: [KOSSA] C++ Programming - 15th Study - STL #1

14

Page 15: [KOSSA] C++ Programming - 15th Study - STL #1

15

배열 std::vector

Page 16: [KOSSA] C++ Programming - 15th Study - STL #1

16

Page 17: [KOSSA] C++ Programming - 15th Study - STL #1

17

Page 18: [KOSSA] C++ Programming - 15th Study - STL #1

18

#include <vector> // 해더 파일

std::vector<int> vec; // 선언

vec.push_back(10); // 추가vec.pop_back(); // 삭제

vec.resize(10, 0); // 초기화 : 10의 크기를 0으로 채움vec[3] = 10; // 랜덤 접근

std::cout << vec[3] << std::endl; // 랜덤 접근

Page 19: [KOSSA] C++ Programming - 15th Study - STL #1

19

int nSum = 0;for (int i = 0; i < vec.size(); i++){

nSum += vec[i];}

// auto = std::iterator<std::vector<int>>for (auto it = vec.begin(); it != vec.end(); it++){

nSum += (*it);}

Page 20: [KOSSA] C++ Programming - 15th Study - STL #1
Page 21: [KOSSA] C++ Programming - 15th Study - STL #1

21

std::vector

Page 22: [KOSSA] C++ Programming - 15th Study - STL #1

22

Page 23: [KOSSA] C++ Programming - 15th Study - STL #1

23

#include <deque> // 해더 파일

std::deque<int> deq; // 선언

deq.push_back(10); // 뒤에 추가deq.pop_back(); // 뒤에 삭제deq.push_front(20); // 앞으로 추가deq.pop_front(); // 앞에 삭제

deq.resize(10, 0); // 초기화 : 10의 크기를 0으로 채움deq[3] = 10; // 랜덤 접근

std::cout << deq[3] << std::endl; // 랜덤 접근

Page 24: [KOSSA] C++ Programming - 15th Study - STL #1

24

int nSum = 0;for (int i = 0; i < deq.size(); i++){

nSum += vec[i];}

// auto = std::vector<int>::iteratorfor (auto it = deq.begin(); it != deq.end(); it++){

nSum += (*it);}

Page 25: [KOSSA] C++ Programming - 15th Study - STL #1
Page 26: [KOSSA] C++ Programming - 15th Study - STL #1

26

Page 27: [KOSSA] C++ Programming - 15th Study - STL #1

27

Page 28: [KOSSA] C++ Programming - 15th Study - STL #1

28

Page 29: [KOSSA] C++ Programming - 15th Study - STL #1

29

#include <list>

std::list<int> lst;

lst.push_back(5); // 5lst.push_back(10); // 5 -> 10lst.push_front(1); // 1 -> 5 -> 10

auto it = lst.begin(); // 첫번째 위치, it -> 1 -> 5 -> 10it++; // 두번째 위치, 1 -> it -> 5 -> 10auto at = lst.insert(it, 2); // 2 삽입, 1 -> at -> 2 -> it -> 5 -> 10lst.insert(at, 3); // 1 -> 3 -> at -> 2 -> it -> 5 -> 10lst.insert(it, 4); // 1 -> 3 -> at -> 2 -> 4 -> it -> 5 -> 10

for (auto iter = lst.begin(); iter != lst.end(); iter++)std::cout << (*iter) << '\t';

Page 30: [KOSSA] C++ Programming - 15th Study - STL #1

30

std::list<int> lstB;lstB.push_back(20); // 20lstB.push_back(30); // 20 -> 30

// 1 -> 3 -> at -> 2 -> 4 -> it -> 5 -> 10lst.insert(it, lstB.begin(), lstB.end());

// 1 -> 3 -> at -> 2 -> 4 -> 20 -> 30 -> it -> 5 -> 10

for (auto iter = lst.begin(); iter != lst.end(); iter++)std::cout << (*iter) << '\t';

std::cout << std::endl;