TIL - 2021.02.26

Wanna be __·2021년 2월 27일
0

TIL

목록 보기
19/45
post-thumbnail

Today, I Learned

C++

  1. 반복문에서 전위연산자를 사용한다. 왜?
    전위나 후위나 로직상의 차이는 전혀 없으나, 관례에 따라 후위 연산자를 쓰는게 있다.
    for 반복문에서 i++로 쓰면 임시 변수가 하나 더 생성되고, ++i로 쓰면 임시 변수가 생성되지 않으니 이게 더 효율적이라는 내용이 있습니다. 참고
    따라서 그냥 쓰던대로 후위 증감 연산자를 써야겠다.
    다만, 여기 를 참고하였을때, 사용자 Class에 대한 전, 후위 증감 연산자는 Side Effect를 고려하여 동일하게 처리되지 않는 경우가 존재할 수 있으나, 실제 for 문에서 해당 class를 통하여 iterate하는 경우는 잘 없으므로 무방할듯 하다.
int num1 = 2;
num1 = num1++ + ++num1;

결과는? 7
  1. 전위 연산자에 의하여 num1값이 1증가 (num1 = 3)
  2. num1 = 6이 된 후, 후위연산자에 의하여 num1값이 1증가하면서 7!

Today, I Did

  1. 여차저차 목표하던 C++ 1회독을 끝냈다. 아직 Class를 만들며 자료구조를 쌓아가기에는 부족한 실력이지만, 기본적인 내용을 이해하였고, 다음학기를 위한 기틀을 충분히 다졌다고 생각한다.

Java보다 C++의 연산속도가 얼마나 차이나는가 궁금하여 백준에서 숫자 두개를 입력받아 두 수의 합을 출력하는 문제의 속도 비교를 해보았다.

정말 기본적인 입력과 연산이라 큰 차이가 없을것으로 예상하였으나, 예상과는 전혀 다른 결과가 나왔다.

위 - C++ std::cin
중간 - Java BufferedReader
아래 - Java Scanner

를 사용하여 입력을 받았는데, C++은 0ms가 나왔다.. 메모리도 Java의 반의 반 수준을 사용하는것이 믿기지가 않았다... 이론은 끝났으니 이제 C++을 제대로 파보아야겠다.

profile
성장하는 개발자

0개의 댓글