'Programming/STL'에 해당되는 글 5건

  1. 2014.06.02 Map
  2. 2014.06.02 List
  3. 2014.06.02 vector
  4. 2014.06.02 반복자, 조건자
  5. 2014.06.02 STL 개요

Map

Programming/STL 2014. 6. 2. 10:35

map

map은 노드기반 컨테이너다. 양방향 반복자를 사용하며 []가 연산자 오버로딩 되어있다. 삽입이 느리고 검색과 정렬이 빠르다.(타일과 지형은 벡터로, 이미지는 map으로)

 

한번에 2개의 값을 집어넣는다( key, value)

key : 분류 기준, 정렬의 기준이 된다.

value : 직접적인 데이터이다.

 

map<키, 벨류> m_map;

m_map.insert(pair<키, 벨류>(키값, 벨류값)); //pair는 반드시 생성해줘야 하는 임시객체

 

iter->first : 키값    iter->second : 벨류값

 

키값이 동일하다면?

map : 중복키값 비허용

multimap : 중복키값 허용

 

사용 예

m_map.insert(pair<int,string>(5,"ABC"));

m_map.insert(make_pair(5, "ABC")); //make_pair는 직접 만든것

insert 사용시 키값이 중복된다면 처음것이 남아있다.

대입 사용시 키값이 동일하다면 나중것이 남아있다.

 

iter = m_map.find(n)  //특정값을 찾을 때 사용한다.

 

map의 3번째 인자(정렬)    기본 less(오름차순) , 내림차순은 greater

 

multimap은 = 이 되지 않는다. 키값이 중복 가능하다.

'Programming > STL' 카테고리의 다른 글

List  (0) 2014.06.02
vector  (0) 2014.06.02
반복자, 조건자  (0) 2014.06.02
STL 개요  (0) 2014.06.02
Posted by 눈떠보니내무실
,

List

Programming/STL 2014. 6. 2. 10:02

리스트

push_front, pop_front, push_back, pop_back 모두 사용 가능

 

list<int> lt;

 

lt.reverse() : lt의 순차열을 뒤집는다.

lt.splice(p,lt2) : p가 가리키는 위치에 lt2의 모든 원소를 잘라 붙인다.

lt.splice(p,lt2,q) : p가 가리키는 위치에 lt2의 q가 가리키는 원소를 잘라 붙인다.

 

list는 sort를 기본 제공한다.

lt.sort(조건자)        기본적으로 오름차순으로 되어있다.

'Programming > STL' 카테고리의 다른 글

Map  (0) 2014.06.02
vector  (0) 2014.06.02
반복자, 조건자  (0) 2014.06.02
STL 개요  (0) 2014.06.02
Posted by 눈떠보니내무실
,

vector

Programming/STL 2014. 6. 2. 09:34

vector

사용가능한 컨테이너함수: push_back(), pop_back();

벡터의 문제점: 메모리의 재할당, 느리다

 

vector<int> vec(3); //0으로 초기화된 벡터 3개를 미리 선언

vec.clear();   //vec안의 원소들을 모두 지움

vec.empty(); //비어있다면 true를 반환함

 

자주 사용되는 것들

vector<int>::iterator p;

vector<int>::iterator q;

 

vector v(n) : v는 기본값으로 초기화된 n개의 원소를 갖는다.

vector v(n,x) : v는 x값으로 초기화된 n개의 원소를 갖는다.

vector v(v2) : v는 v2컨터이너의 복사본이다.

p = v.begin() : p는 v의 첫 원소를 가리키는 반복자이다.

p = v.end() : p는 v의 끝을 표식하는 반복자이다.

v.clear() : v의 모든 원소를 제거한다.

v.empty() : v가 비었는지 조사한다. 비었으면 true를 반환한다.

q = v.erase(p) : p가 가리키는 원소를 제거한다. q는 다음 원소를 가리킨다.

q = v.erase(b,e) : 반복자구간[b,e)의 모든 원소제거, q는 다음 원소를 가리킨다

q = v.insert(p,x) : p가 가리키는 위치에 x값을 삽입. q는 삽입한 원소를 가리킴

v.push_back(x) : v의 끝에 x값을 추가한다.

v.pop_back() : v의 마지막 원소를 제거한다.

v.size() : v원소 개수의 반환

v[i] : v의 i번째 원소를 참조한다.

v.front() : 첫 원소 참조

v.back() : 마지막 원소 참조

v.assign(n,x) : n개의 원소에 x값을 할당한다.

v.reserve(n) : n공간만큼 미리 만들어놓고 쓴다(n만큼은 재할당이 일어나지 않는다)

v.resize(n) : n만큼 사이즈 변경, v(3)같이 초기화된 경우 3->n으로

 

임시객체와 swap을 이용해 지우는 방식

vector<int>().swap(v)    //swap은 같은 컨테이너끼리, 같은 자료형끼리 가능

 

 

 

 

 

 

 

'Programming > STL' 카테고리의 다른 글

Map  (0) 2014.06.02
List  (0) 2014.06.02
반복자, 조건자  (0) 2014.06.02
STL 개요  (0) 2014.06.02
Posted by 눈떠보니내무실
,

iterator 선언 예

vector<int>::iterator iter;         iter = m_iVec.begin();

 

반복자의 종류

1. 입력 반복자 : 파일, 원소를 한번만 읽을 수 있다.

2. 출력 반복자 : 값을 넣을 수 있는 반복자.

3. 순방향 반복자 : ++ 이 연산자 오버로딩 되어있다.

4. 양방향 반복자 : ++, --가 연산자 오버로딩 되어있다.

5. 임의접근 반복자 : 배열기반 컨테이너만 사용 가능하다. +, -, ++, --, [] 가 연산자

                              오버로딩 되어있다.

 

조건자

count_if(begin, end) : 구간 내 데이터 개수 반환

조건자 - 단항 조건자

           - 이항 조건자

 

이항 조건자

sort(begin(), end() ,greater<int>());  //less<자료형>()는 오름차순, greater는 내림차순

 

'Programming > STL' 카테고리의 다른 글

Map  (0) 2014.06.02
List  (0) 2014.06.02
vector  (0) 2014.06.02
STL 개요  (0) 2014.06.02
Posted by 눈떠보니내무실
,

STL 개요

Programming/STL 2014. 6. 2. 08:31

STL의 사용 목적

-효율성, 재사용성, 확장성

 

STL의 컨터이너 종류

1.표준 시퀀스 컨테이너(vector, list, deque) 시퀀스의 뜻은 순차열이다.

2.표준 연관 컨테이너(트리구조) (set,multiset,map,multimap)

3.표준 배열기반 컨테이너(vector, deque)

4.표준 노드기반 컨테이너(나머지 다~~)

5.컨테이너 어댑터(어댑터 컨테이너) (Queue, Stack, 우선순위Queue를 지원하는 것)

 

예외: 근사 컨테이너: string (템플릿으로서 올바른 것인가??)

 

STL은 기본지원을 하지만 외부참조 파일이다.

 

시퀀스 컨테이너 함수

push_back() : 맨 뒤에 추가한다.

push_front() : 맨 앞에 추가한다.

pop_back()  : 맨 뒤에서 뺀다(삭제한다).

pop_front()  : 맨 앞에서 뺀다(삭제한다).

 

[]인덱스 연산자를 사용할 수 있는 것: vector, deque, map

.size() //원소의 개수를 구하는 함수. string은 문자의 길이를 구함.

'Programming > STL' 카테고리의 다른 글

Map  (0) 2014.06.02
List  (0) 2014.06.02
vector  (0) 2014.06.02
반복자, 조건자  (0) 2014.06.02
Posted by 눈떠보니내무실
,