피씨컴의 기울어진 공관

STL 2일차

스터디/활동 2013. 6. 19. 09:20

● Vector , List

 

- 공통사항

begin() : 맨처음 원소를 가르키는 반복자

end : 맨마지막 원소의 다음위치 반복자

empty : 원소가 비었느냐?

size : 원소의 갯수 (Vec[5]같은 놈을 Vec.Size와 같이 사용 가능)

erase : 원소 제거 (반복자를 넣으면 그 해당 반복자를 제거)

 

 

● Vector 만의 특징

 

[] , at :임의 위치 지정

Push_back : 맨뒤 삽입 (이거밖에 없는 이유는 중간삽입은 부하가 심해서 뺀거임 반복자의 Insert를 쓰면 된다고도함)

pop_back

 

resize  : 공간과 원소를 확보(원소, 크기)

reserve : 공간만 확보( 크기)

※ resize reserve 모두 공간의 1.5배 확보한다.  10입력 11원소 15공간

 

Ex) Vector는 1.5배씩 늘어난다.

0 0

1 1

2 2

3 3

4 4

5 6

6 6

7 9

 

● List 만의 특징

push_front

pop_front

back : 맨뒤 원소

front

reverse : 앞뒤를 바꿈

Sort : 리스트 자료구조의 자료 단위는 노드라 뒤집어 봤자 제대로 적용이 안됨 그래서 전용 소트 함수가 따로 있는것

              구조상 일반 소트 알고리즘을 쓸수가 없어서 따로 지원

 

 

● 반복자 무효화 : 포인트는 아니지만 포인트역활을 해왔던 반복자가 그 역활을 못하는 상황

( 추가, 삭제에서 모두 발생하지만 평균적으로 삭제에서 더 많이 발생)

 

보통 원소의 처음부터 끝까지 한번에 지울때 많이 발생

 

Iter=vec.begin()

for(iter!=vec.end();iter++)

{

delete * iter;

iter = vec.erase(iter)    // 이부분 중요 이놈이 반복자를 지우고 다음놈을 리턴해주기 때문에 다음에 계속 이어할수 있음

}

 

 

● 벡터 좀 쉽게 쓰는법

std::vector < 자료형 변수명 >

:: iterator

 

이렇게 쓰면 졸 귀찮으니까

 

typedef     score_list     std::vector<tagscore>

 

요래 해두면 다음부턴 score_list만쓰면 만사오케이 ㅇㅇㅇㅇㅇㅇ

 

 

'스터디 > 활동' 카테고리의 다른 글

인벤토리 알고리즘 프로세싱  (0) 2013.06.25
STL 기초 3일  (0) 2013.06.20
STL 기초 1일차  (0) 2013.06.18
디자인 패턴 종류  (0) 2013.06.07
3. 클래스 생성자와 파괴자  (0) 2013.03.19
Posted by 피씨컴