[kossa] c++ programming - 15th study - stl #1

Post on 10-Aug-2015

24 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

3

Bijarne Stroustrup

Alexander Stepanov

5

6

7

8

10

12

std::vector

std::deque

std::list

14

15

배열 std::vector

16

17

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; // 랜덤 접근

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

21

std::vector

22

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; // 랜덤 접근

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

26

27

28

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';

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;

top related