<algorithm>

sort

오름차순

sort(vector.begin(), vector.end());

내림차순

#include <functional>
sort(vector.begin(), vector.end(), greater<[Data Type]>());

reverse

std::reverse(vector.begin(), vector.end());

find

std::find(vector.begin(), vector.end(), item) != vector.end()

기본 사용법

1
2
3
4
if ( std::find(vector.begin(), vector.end(), item) != vector.end() )
do_this(); //찾았다면
else
do_that(); //못 찾았다면

응용 사용법

1
2
3
4
5
list<int>::iterator it = find(list.begin(), list.end(), item);
if(it == list.end())
do_this();
else
list.erase(it); //it가 가리키는 노드 삭제

나머지는 필요할 때마다 추가 예정

ListContainer

list의 사용

#include<list>
list<[Data Type]> [변수 이름];

  • 예시) list<int> lt1; list<string> lt2;

list 반복자

list<[Data Type]>::iterator [변수 이름];

list 생성자

1
2
3
4
5
6
7
list lt;		//비어있는 list컨테이너 lt를 생성합니다.

list lt(10); //default(0)값으로 초기화 된 원소 10개를 가진 list를 생성합니다.

list lt(3, 2); //2값으로 초기화 된 원소 3개를 가진 list를 생성합니다.

list lt2(lt1); //list lt1을 lt2로 복사합니다.

list의 멤버 함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
lt.assign(3, 4);	//4로 초기화된 3개의 원소를 할당한다.

lt.front(); //맨 앞의 원소를 반환(return), 참조 합니다.

lt.back(); //맨 뒤의 원소를 반환(return), 참조 합니다.

lt.begin(); //맨 앞의 원소를 가리키는 iterator를 반환합니다.

lt.end(); //맨 마지막의 다음 원소를 가리키는 iterator를 반환합니다.

lt.rbegin(); //뒤에서부터 원소를 순차적으로 접근할때 편리하게 쓰입니다.

lt.rend(); //뒤에서부터 원소를 순차적으로 접근할때 편리하게 쓰입니다.

lt.push_back(k); //뒤쪽으로 원소 k 를 삽입합니다.

lt.push_front(k); //앞쪽으로 원소 k 를 삽입합니다.

lt.pop_back(); //맨 마지막 원소를 제거합니다.

lt.pop_front(); //맨 첫번째 원소를 제거합니다.

lt.insert(iter, k); //iter가 가리키는 위치에 원소 k를 삽입합니다. 삽입한 원소를 가리키는 iterator를
반환합니다.

lt.erase(iter); //iterator가 가리키는 원소를 삭제합니다.반환값은 삭제한 원소의 다음 원소를 가리키는 iterator를 반환합니다.

lt.size(); //원소의 개수를 반환합니다.

lt.remove(k); //k와 같은 원소를 모두 제거합니다.

lt.remove_if(Predicate); //단항 조건자 predicate에 해당하는 원소를 모두 제거합니다.
bool predicate(int num){
return num>=100 && num<=200;
}

lt.reverse(); //원소들의 순차열을 뒤집습니다.

lt.sort(); //모든 원소를 default(오름차순)으로 정렬합니다.

lt.sort(greater<[Data Type]>()); //모든 원소를 내림차순으로 정렬합니다.

lt2.swap(lt1); //lt2와 lt1을 swap(바꿉)니다.

lt2.splice(iter2, lt1); //lt2에서 iter2이 가리키는 곳에 lt1의 모든 원소를 잘라 붙입니다.

lt2.splice(iter2, lt1, iter1); //lt2의 iter2가 가리키는 곳에 lt1의 iter1이 가리키는 원소를 잘라 붙입
니다.

lt2.splice(iter2, lt1, iter1_1, iter1_2); // lt2의 iter2가 가리키는 곳에 lt1의 [iter1_1 , iter1_2) 까지의 원소를 잘라 붙입니다.

lt.unique(); //인접한(양옆의) 원소가 같으면 유일하게 만듭니다.(하나만빼고 삭제)

lt2.merge(lt1);
//lt1을 lt2내부로 합병 정렬합니다. 기준은 default 오름차순 입니다.
//두번째 파라미터로 이항 조건자가 올 수 있습니다. 그때는 그 기준으로 정렬합니다.