반응형

[C++] vector쓸 시 주의할 점

반응형


vector는 C++ STL에서 쓰이는 선형 자료구조입니다.


이 vector를 쓸 때는 주의해야할 점이 있습니다. 바로 vector를 다른 vector에 대입할 때죠.


vector는 기본적으로 다른 vector에 대입될 때 모든 요소들을 그 벡터에 복사하게 됩니다. 그럼으로써, 오버헤드가 발생하게 되죠.

위의 코드는 상당히 단순합니다. -1을 N만큼 초기화한 vector를 또 N만큼 반복하여 다른 벡터에 복사하는 코드죠. 이 코드의 수행 시간은 다음과 같습니다.

[Finished in 3.8s]

만일 단순히 vector의 요소들을 따로 복사를 하지 않아도 처리할 수 있는 일을 한다면 위의 코드는 너무나도 비효율적입니다. N이 적당히 큰 수라서 망정이지 훨신 더 큰 수였다면 엄청난 오버헤드가 발생할 겁니다.


따라서 이걸 방지하기 위해서는 &연산자를 사용하여 vector메모리를 참조하는 방식으로 코드를 작성하는 것이 좋습니다.


[Finished in 0.6s]



반응형

'Language & Solution > C++' 카테고리의 다른 글

[C++] virtual function 동작 방식  (0) 2017.05.13
[C++] lambda 식  (0) 2017.04.18
[C++] 시간 측정  (0) 2017.04.14
[C++] 표준 출력 정확도 조정  (0) 2017.04.14
[C++] 범위 지정 연산자(::)와 namespace  (0) 2017.04.14

이 글을 공유하기

댓글

Designed by JB FACTORY