본문 바로가기

자료구조 /cpp

(3)
3 vector와 priority_queue sorting하기 1. vector 내림 차순 : sort(v.begin(), v,end(), greater()); 오름 차순 : sort(v.begin(), v,end()); 2. map 내림 차순 : struct cmp { bool operator()(int n, int m){ return nm; } } or priority_queue q; 3. struct의 값을 비교할때 (priority_queue를 사용해서) #include #include #include using namespace std; typedef struct { int pos1; int pos2; }pos12; struct cmp { bool operator()(pos12 n, pos12 m) { if (n.pos1 == m.pos1) return n..
1 map 사용하기 map은 key, value로 이루어진 자료구조이다. 맵 기본 함수 기본형태 map : key와 value를 pair 형태로 선언합니다. iterator(반복자) begin() : beginning iterator를 반환 end() : end iterator를 반환 추가 및 삭제 insert( make_pair(key,value) ) : 맵에 원소를 pair 형태로 추가 erase(key) : 맵에서 key(키값)에 해당하는 원소 삭제 clear() : 맵의 원소들 모두 삭제 조회 find(key) : key(키값)에 해당하는 iterator를 반환 count(key) : key(키값)에 해당하는 원소들(value들)의 개수를 반환 기타 empty() : 맵이 비어있으면 true 아니면 false를 반환..
vector & dequeue & list 1. vector 저장 원리 : 백터는 일반적인 배열처럼 연속된 메모리 공간을 찾아서 잡고 배열처럼 차근차근 인덱스로 저장한다. 이 말은 즉 배열처럼 operator[]로 접근이 가능하다는 소리이다. 즉 백터는 동적으로 확장/가능이 가능한 dynamic array로 구현되어 있다. 강점 : 1) 배열처럼 constant time 안에 인덱스 접근이 가능하다. 2)끝 부분에 삽입하는 연산은 reallocating이 발생하지 않는 한 constat time이다. reallocating 발생한다 하더라도 amortised constant time안에 수행가능하다. 3)일반적으로 vector는 list와 dequeue보다 random access time과 끝에서의 삽입 삭제가 빠르다. (하지만 상황이 어떠느냐..