어느 것이 가장 빠릅니까? A boost::multi_array
또는 std::vector
? 루프 내에서 매우 빠르게 그리고 매우 자주 액세스해야하는 3 차원으로 17.179.869 요소를 저장합니다 (상수는 아님). 가장 실적이 좋은 것은 무엇입니까? std::vector
또는 boost::multi_array
?어느 것이 가장 빠릅니까? boost :: multi_array 또는 std :: vector?
(나는 두 번째 내에서 수행 할 수 있지만, 나는 나노초 차이가 많은 시간을 절약 할 수 있기 때문에 가능한 한 효율적으로하고 싶은 기대하지 않습니다.)
를 참조 모두를 구현하고 측정 .... –
당신이 반복되는 방법에 따라 달라집니다, 당신은 POD를 통해 반복하는 경우. 평평한 배열 인 std :: vector는 가장 작은 차원에서 반복하고 [] 또는 iterator 연산자보다는 포인터를 사용하여 반복 할 때 가장 빠를 수 있습니다. 요소에 대해 상당한 양의 처리를 수행하는 경우에는 별 차이가 없습니다. – IdeaHat
@MadScienceDreams : [Boost.MultiArray] (http://www.boost.org/doc/libs/1_54_0/libs/multi_array/doc/reference.html)도 하나의 인접한 블록에 저장됩니다. 'data '접근 자의 개요에서 : * 배열의 데이터를 담고있는 연속 블록의 시작 부분에 대한 포인터를 반환합니다. [...] * –