[C++] vector / sort

이소진·2021년 1월 14일
0

1. vector란?

-> c++ 표준 라이브러리(STL)에 있는 컨테이너.
-> 동적으로 원소 추가가 가능하며, 크기가 자동으로 늘어남.
=> stack과 비슷한데 기능이 훠어어얼씬 많다 ! ! ! !


2. vector 사용법

🧐기본

-front() : 첫 번째 원소
-begin() : 첫 번째 위치
-back() : 마지막 원소
-end() : 마지막 다음의 위치
-size() : 원소의 갯수
-capacity() : 할당된 공간의 크기

  vector<int> a;
  for (int i = 0; i < 10; i++) {
      a.push_back(i);
  }
  cout<<a.front()<<'\n'; //0
  cout << a.back() << '\n'; //9
  for (int i = 0; i < 10; i++) cout << a[i] << " "; //0 1 2 3 4 5 6 7 8 9

이 모든 설명은
vector를 사용하면서 sort기능도 같이 사용하라는 의미..✨
(사실 stl에서 sort기능 제공해주는걸 처음 안사람..배열에서도 sort쓸 수 있어효)


🧐sort

-> < algorithm >헤더 파일에 속해있다.
-> 아주 편리하다 !!!!!!!!!!!! 야너두 정렬 따로 구현하지마 .. ..

1. sort(배열의 시작점 주소, 마지막 주소, 함수)
*함수 : 해당 함수의 반환 값에 맞게 정렬을 진행

-sort는 기본적으로 오름차순 정렬을 수행함

-세 번째 인자가 들어갈 자리는 필수가 아님 !
(내림차순이나 그 외의 조건으로 정렬을 하고싶은 경우 사용)

-첫 번째 원소를 기준으로 정렬함.
ex) 25 min / 22 so / 23 jin 인 경우
22 so / 23 jin / 25 min으로 정렬된다는 의미

-퀵정렬을 기반으로 함수가 구현되어, 평균 시간복잡도는 O(nlogn).

2.stable_sort(배열의 시작점 주소, 마지막 주소, 함수)
위의 sort와 쓰는 방법은 똑같다.

-위의 sort와 다르게 merge sort로 구현되어있음.

-원소가 같은 경우 컨테이너의 원소 순서대로 정렬된다.
ex) 5 1 / 4 4 / 4 2 인 경우
4 4 / 4 2 / 5 1 로 정렬된다는 의미.


연관된 백준 문제- 11650, 11651, 10814
https://www.acmicpc.net/problem/11650

profile
webFront / Flutter / iOS 😉

0개의 댓글