[C++] STL5 - 최소값, 최대값 탐색, 특정 조건 만족하는 원소 개수 구하기, 원소 사이 거리 구하기, ios::sync_with_stdio, cin.tie & Unreal 살짝

김영웅·2025년 2월 17일

max_element(begin, end)

반복자가 있는 컨테이너의 begin과 end를 이용해 최대값이 담겨져있는 반복자를 반환

min_element(begin, end)

반복자가 있는 컨테이너의 begin과 end를 이용해 최소값이 담겨져있는 반복자를 반환

minmax_element(begin, end)

반복자가 있는 컨테이너의 begin과 end를 이용해 최소값과 최대값의 반복자를 std::pair로 반환


count(begin, end, value)

begin 과 end 사이에 value 값과 같은 원소의 개수를 구한다.

count_if(begin, end, condition)

begin 과 end 사이에서 condition 에 부합하는 원소의 개수를 반환한다.
condition은 람다로 만드는게 편하다.

distance(iter1, iter2)

들어온 iterator들 사이의 거리를 반환한다.

advance(iter, value)

iterator는 value만큼 전진 시킨다.

vector<int> v = {1,2,3,4,5,6,7};
auto iter = v.begin();
advance(iter, 2) // iter는 3을 나타낸다.

입력 크기(N)과 연산 횟수를 보고 대략적인 시간 복잡도를 예측해 보는게 좋다.
입력 크기가 너무 많고 계산이 복잡한데 O(n2)O(n^2)이면 안되겠구나 이런식으로 탈락시키는 등 미리 계산해야 한다.


헤더 파일을 그냥 단체로 포함시키고 싶으면 #include <bits/stdc++.h>를 쓰면된다.
코테 같은 곳에서 실무에선 문제가 많이 생겨 사용하지 않는 편이다.


ios::sync_with_stdio(false);

원래 기본적으로 C언어와 C++언어의 입력 시스템은 동기화가 되어있다.
이 함수를 사용하면 C언어 스타일의 입력과 C++언어 스타일의 입력을 분리해서 더 빨라진다.

cin.tie(nullptr); 혹은 cin.tie(0);

C++은 평소에 cout과 cin을 묶어줘서 아래와 같은 코드를 순차적으로 cout 후 cin을 해주는데

cou << "Enter Key ";
cin >> temp;

이 함수를 사용하면 묶여있지 않아 cin부터 실행되어 빨라진다.


endl을 쓰면 출력 버퍼가 강제로 flush되어 느려질 수 있으니 큰 문제에서 반복 출력할 때는 endl보다 \n을 추가해주는게 좋다.

문자열 전체를 받으려면 getline()이 좋다


UGameplayStatics::SpawnEmitterAtLocation으로 파티클을 생성할 수 있다.

UGameplayStatics::PlaySoundAtLocation으로 사운드를 재생할 수 있다.

profile
게임 프로그래머

0개의 댓글