본문 바로가기

Vector2

[C++/STL] stack을 vector로 변환하기 STL에서 stack은 컨테이너에 대한 접근을 제어하는 목적으로 사용된다. 따라서 iterator를 제공해주지 않기 때문에 iterator을 사용해서 vector를 만들어낼 수 없다. 요소를 제거하면서 vector 생성 stack st; st.push(1); st.push(2); st.push(3); vector arr(st.size()); int index = arr.size() - 1; // copy st to arr while(!st.empty()){ arr[index--] = st.top(); st.pop(); } stack에서는 top을 통해서만 요소를 가져올 수 있기 때문에 top을 이용해서 vector의 뒤에서부터 값을 채워준다. 단, 이 방법을 쓰면 기존 stack에는 요소가 더 이상 남아.. 2021. 1. 21.
[C++] STL pair를 sort 함수로 내림차순 정렬하기 sort 함수를 알고리즘 문제를 풀다가 정렬할 때 마다 쓰는데 내림차순을 원하거나 second 값으로 오름차순을 하길 원할 때 compare 함수를 어떻게 짜야하는지 맨날 헷갈린다. ​그래서 포스팅해둠. sort 함수는 algorithm 헤더파일을 필요로 한다. sort(시작 주소, 종료 주소, [비교함수]) 비교함수는 생략이 가능하다. 생략시에는 오름차순으로 정렬된다. ​ sort 함수 compare 함수대신 greater(), less(int>() 들도 사용한다고 하는데 아직 한 번도 안 써봤다... 이 때, sort(&arr[0], &arr[N], compare); 이렇게 써주어도 된다. 정렬되는 범위가 시작 주소는 포함하고 종료 주소는 포함이 되지 않는다고 한다. 즉, 위 함수 정렬의 범위는 ar.. 2019. 5. 31.