
C++에서 프로그램을 종료할 때, 어떤 것을 써야 할까? 여러 방법이 있지만, 가장 표준적인 방법은 int main()과 함께 따라오는 return 0; 구문이다. HTML 삽입 미리보기할 수 없는 소스 그러나, 종료하는 방법 중 exit(0)를 활용하는 방법도 있다. 그럼, 다음과 같이 적으면 안되나? 왜 이 방법은 표준이 되지 않았을까? HTML 삽입 미리보기할 수 없는 소스 이번 포스팅에서는 이에 대하여 알아보고, 왜 return 0;가 표준이 되었는지 살펴보자. 1. return 0 의 뜻 C / C++에서 프로그램을 종료할 때, 무의식적으로 쓰는 구문은 main함수의 끝에 붙어있는 'return 0;' 이다. 이에 대한 뜻은, 프로그램을 끝내고 난 뒤 정수 '0'을 반환한다는 뜻이다. 근데, 이..

종종 누적 합(partial_sum) 알고리즘을 사용하기 위하여 각 부분별 부분 합을 구할 때가 많다. 그럴 때 우리는 이런식으로 코드를 작성하였다. vector nums의 처음부터 끝까지 각 부분별 누적합을 구하고, 이를 vector acc_nums에 담는다고 가정하자. HTML 삽입 미리보기할 수 없는 소스 위와 같은 코드를 단 두 줄의 코드로 압축할 수 있으면 믿을 것인가? 누적 합을 쉽게 위하여 C++에는 partial_sum이라는 함수가 정의되어 있다. 1. partial_sum (※ https://www.cplusplus.com/reference/numeric/partial_sum/ 에서 함수에 대한 정보를 확인할 수 있다.) C의 Sequence 관련 여러 함수들이 담긴 헤더 에서의 part..

어떤 배열이나 container의 최댓값 및 최솟값이 필요한 경우는 무수히 많다고 해도 과언이 아니다. 하지만, 배열의 원소 하나씩 접근하고 비교하면서 최댓값 / 최솟값을 찾으면 이거만큼 코드의 가독성이 떨어지고 슬픈일이 아닐 수 없다. 특별한 함수를 사용하지 않고 for문을 통해 배열의 원소 하나씩 접근하며 도는 경우 다음과 같은 코드를 작성할 수 있다. HTML 삽입 미리보기할 수 없는 소스 배열 nums의 원소를 하나씩 돌면서 max_num과 min_num에 각각 최댓값과 최솟값이 담기는 모습을 확인할 수 있다. 그러나, 너무나도 귀찮고, 귀찮다. 하물며 최댓값 또는 최솟값의 index를 묻는다면 새로운 변수에 담아야 하거나, 다른 방법으로 구해야 한다. 이제, 이러한 길고 긴 for문을 탈출하고 ..

accumulate 함수는 많은 C++ 사용자들에게 널리 알려져 있지만, 그래도 아직 모르는 사용자들이 있다고 생각되어 포스팅을 남긴다. std::accumulate 함수는 특정 배열 혹은 container의 누적 합을 구할 때 사용가능한 함수이다. 특히, 전체 합을 구하거나, 한 번의 누적 합을 구할 때 사용할 수 있다. 함수 accumulate를 사용하지 않고 누적 합을 구한다면 다음과 같이 작성할 수 있다. 예를 들어, vector nums 안에 있는 모든 원소들의 합을 구한다고 가정하여보자. 다음과 같이 코드를 작성할 수 있다. HTML 삽입 미리보기할 수 없는 소스 코드 자체는 길지 않지만, accumulate는 누적 합을 구하는 것 이외의 응용을 할 수 있는 방법이 무궁무진하다. 1. accu..

이 함수는 앞서 소개한 all_of 나 any_of 과 비슷한 성격을 띠고 있는 함수지만, 앞의 두 함수보다 더 자주 사용하고 유용하게 사용할 수 있는 함수를 하나 소개하고자 한다. 만약, 다음과 같은 문제가 있다고 하여보자. 어떤 container 안에 모든 원소가 -1이 아닌지 확인하시오. none_of를 알기 전, 필자는 이러한 코드를 작성하였을 것이다. HTML 삽입 미리보기할 수 없는 소스 이런이런! 7줄이나 먹는 코드라니, 매우 비효율적인 코드이다. 이를 none_of 함수를 사용하여 한 줄로 압축하여보자! 1. none_of (※ https://www.cplusplus.com/reference/algorithm/none_of/ 에서 함수에 대한 정보를 확인할 수 있다.) C++의 알고리즘 관..

어떤 배열 안 혹은 container 안에서 모든 원소들이 어떤 특정 조건을 만족하는지 검사하기 위하여 우리는 for문을 활용하여, 하나씩 검사하는 방법을 사용하였다. 예를 들어, vector num 이라는 container 안에 모든 원소가 모두 0보다 큰지 검사하기 위해 다음과 같은 코드를 작성하였다. HTML 삽입 미리보기할 수 없는 소스 또 이런! 이러한 코드를 작성하는데 7줄을 써야한다고? 시간 낭비에 공간 낭비 따윈 걱정 마시라, 이제는 함수 all_of 를 사용하면 단 한줄만에 작성할 수 있다! 1. all_of (※https://www.cplusplus.com/reference/algorithm/all_of/ 에서 함수에 대한 정보를 확인할 수 있다.) C++의 알고리즘 관련이 담긴 헤더 ..
- Total
- Today
- Yesterday
- BRONZE
- equal
- 백준
- 헤더
- 수학
- Max
- docker
- 알고리즘
- C
- 사칙연산
- JS
- 구현
- Proactor
- 프로그래밍
- 제어문
- BOJ
- bomblab
- effective async
- CSAPP
- for
- C++
- 함수
- 문자열
- GDSC
- Network
- 시간복잡도
- Python
- MIN
- react
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |