목록C++ 나만의 복습 (43)
그냥 게임개발자
제곱근을 구해주는 함수다. #include #include using namespace std; int main() { int n = 64; int ret = (int)sqrt(n); cout
2의2승 2의 3승을 구해주는 함수가 있다. #include #include using namespace std; int main() { int n = 2; int pow_2 = (int)pow(2, n); cout

저번 포스팅의 반대입니다. 배열 중 가장 작은 요소를 추출하는 함수입니당. #include #include using namespace std; int main() { vector vec = vector(); for (int i = 1; i

귀찮아도 해야되는게 게임입니다. 저한테는 그게 코딩입니다. 근데 쓰기가 귀찮네요 그래도 시작해봅시다. max_element()이름만봐도 설명이 된다. 최대 요소 큰 요소 그렇습니다. 이 함수는 이터레이터를 반환하고 이터레이터는 *를 통해 값을 끄집어 낼 수 가 있고 이를 기반으로 해당 컨테이너의 최대값의 인덱스 또한 뽑아낼 수 있습니다. #include #include using namespace std; int main() { vector vec = vector(); for (int i = 1; i

배열의 합을 구하는 방법은 우리가 어릴 때 많이 배웠습니다. #include #include #include using namespace std; int main() { int sum = 0; vector v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (vector::iterator it = vec.begin(), it != vec.end(); ++it) { sum += *it; } cout

정렬된 배열에서 어떤 값이 나오는 첫번째 지점 또는 초과하는 지점의 위치를 찾으려면 어떻게 해야할까? 또한 이분 탐색을 쉽게 함수로 구현하려면 어떻게 해야할까? 이분탐색은 또뭔가? 이분탐색 하나의 알고리즘으로 정렬되어 있는 배열이나 리스트에서 탐색 범위를 절반씩 좁혀가면서 데이터를 탐색하는 방법 일단 위의 사진이 lowerbound와 upperbound를 설명하는 그림이다. 그래도 우리는 할 수 있다 하나씩 생각해보자. 보면 엄 안보이니까 그림 한번만 더 쓸게요 위 그림에서 보면 중복된 값이 있는 배열을 정렬한 상태에서 3을 기준으로 lower_bound(3)을 호출하면 3보다 크면서 큰 값이 최초로 발견된 index를 반환해줍니다. 즉 위에서는 3을 반환하죠 0, 1, 2, 3 이렇게 말이에요 uppe..

만약에 들어온 순서대로 정렬하고 싶으면? sort()가 아니라 stable_sort()를 써야 한다. #include #include #include using namespace std; int main() { // pair의 첫 번째 요소는 정렬할 값, 두 번째 요소는 원래 인덱스 vector pairs = {{2, 1}, {4, 2}, {5, 3}, {5, 4}, {3, 5}}; cout

배열이나 컨테이너의 요소를 정렬하는 함수이다. 보통 array나 vector를 정렬할 때 쓰인다. O(nlogn)의 시간 복잡도를 가지는 함수이다. sort()에 들어가는 매개변수는 총 3개이다. 2개는 필수이고 한개는 선택이다. sort(first, last, *커스텀 비교함수) first는 정렬하고 싶은 배열의 첫번째 이터레이터, last는 정렬하고 싶은 배열의 마지막 이터레이터를 넣으면 된다. 한마디로 first는 포함하고 last는 포함하지 않는다는 의미이다. 그래서 예를 들어 크기가 5인 a라는 배열 전체를 sort한다고 하면 sort(a, a + 5)라고 써야 한다. sort 매개변수에는 주소가 들어가니 a[0]이 아닌 a가 들어간다. last 배열에는 마지막요소가 아닌 그 "다음" 위치를 넣..