개발자 면접 공부/C-C++

C++ for문 증감문에 전위연산자 vs 후위연산자 속도 차이

chogyujin 2024. 4. 3. 19:00
728x90

1. 개요

오늘은 for문에서 전위 후위 증감문에 속도 차이에 대해 알아보겠습니다.


2. 차이

C++ 공부를 하다 보면 for문을 많이 사용할것입니다.
근데 여기서 
for(int i=0; i<10 ; i++)

for(int i=0; i<10 ; ++i)

가있었습니다.

저는 첫번쨰를 많이쓰고 습관화가 되있습니다.

과연 둘 중 누가 더 속도가 빠를가요?

 

첫 째. 전위연산

int a = 1;

int b = ++a;

를 할 경우 a와 b를 출력하면 a = 2, b = 2 의 결과값이 나옵니다.

 

둘 째 후위 연산

int a = 1;

int b = a++;

를 할 경우 a = 2, b = 1 결과가 나옵니다.

 

이것을 안쪽을 뜯어보면

_Self& operator++() _GLIBCXX_NOEXCEPT //전위증가
{

_M_node = _M_node->_M_next;

return *this;

}  

_Self operator++(int) _GLIBCXX_NOEXCEPT //후위증가

{

_Self __tmp = *this;

_M_node = _M_node->_M_next;

return __tmp;

}

로 후위증가를 할 경우 값을 저장하기 위해 tmp변수와 복사 연산이 발생하게 됩니다.
따라서 전위증가가 더 효율적 이라고 합니다.


3. Ref

https://doo9713.tistory.com/7

 

for문 증감문에 전위연산자와 후위연산자의 차이

C언어를 공부하면서 처음 C를 배웠을 경우 for문에서 사용할 때 for(int i=0; i

doo9713.tistory.com

https://d-yong.tistory.com/75

 

[C/C++] for문에서 전위증가 후위증가 차이점

나의 경우 주로 for문에서 후위증가를 사용했었고 타인의 코드를 볼 때 전위증가를 사용하는 사람이 있으면 그냥 스타일 차이인가 보다 하고 넘겼었는데 갑자기 궁금해져서 찾아보게 되었다. 전

d-yong.tistory.com

 

'개발자 면접 공부 > C-C++' 카테고리의 다른 글

Volatile  (0) 2024.04.29
네임 맹글링  (0) 2024.04.14
NULL 포인터로 객체의 함수가 왜 호출되냐?  (0) 2024.03.26
VTable 위치 파악  (0) 2024.03.25
초기화자 리스트(intializer_list)  (0) 2024.03.08