반응형
나의 경우 주로 for문에서 후위증가를 사용했었고 타인의 코드를 볼 때 전위증가를 사용하는 사람이 있으면 그냥 스타일 차이인가 보다 하고 넘겼었는데 갑자기 궁금해져서 찾아보게 되었다.
전위증가와 후위증가의 차이는 결론적으로 전위증가가 더 효율적이다.
for문내에서는 컴파일러가 전위증가를 사용하던 후위증가를 사용하던 별차이가 없다고는 하지만 실제로 list의 전위,후위 증가
연산자 오버라이딩 된 코드를 보면 전위연산자가 조금더 효율적인것 같다.
_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변수와 복사연산이 발생하게 되어 전위증가가 더 효율적이라고 할 수 있다.
반응형
'C and C++' 카테고리의 다른 글
[C++] 싱글톤 생성 팁 (0) | 2022.08.15 |
---|---|
[C++][STL] vector의 메모리(capacity) 완벽하게 제거하기 feat. swap (0) | 2021.02.06 |
[C++][STL] vector for문 올바로 사용하기 (0) | 2021.02.06 |
[C] C에서 생성자 소멸자 흉내기 (0) | 2020.10.11 |
[C++][STL] STL을 활용하여 상한값 하한값 단순화 (0) | 2020.05.03 |