반응형
백준문제를 풀다가 배열복사와 벡터복사의 속도차이가 궁금해져서 테스트를 해보았다.
각각 100 x 100 짜리 이차원 배열, 벡터를 만들어서 1000번씩 복사하는 작업을 수행하고 시간을 재서 속도차이를 비교해보았다.
다음과 같이 테스트소스를 구성하였다.
// 배열복사와 벡터복사 속도차이 비교하는 중이었는데 벡터가 훨씬 느리다. #include <iostream> #include <vector> #include <time.h> using namespace std; #define N 100 int main() { // 100x100 arr int arrOrg[N][N] = { 0 }; clock_t start = clock(); int arr[N][N]; for (int k = 0; k < 1000; k++) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { arr[i][j] = arrOrg[i][j]; } } } printf("100x100배열 1000번 복사하는데 걸린 시간 : %.3lf\n", (double)(clock() - start)); // 걸린 시간 출력(ms) // 복사할 2차원 벡터를 일단 생성 vector<vector<int> > vMap(N, vector<int>(N, 0)); for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { vMap[i][j] = i * N + j; } } start = clock(); for(int i = 0 ; i < 1000 ; i ++) vector<vector<int> > vCopy = vMap; printf("100x100벡터 1000번 복사하는데 걸린 시간 : %.3lf\n", (double)(clock() - start)); // 걸린 시간 출력(ms) return 0; }
반응형
'Programming > C,C++' 카테고리의 다른 글
[char*, char[], const char* ] 문자열 상수, 문자열 변수 이해 (0) | 2020.03.31 |
---|---|
[C++ 소켓 스레드통신] 스레드클래스를 직접 만들고 소켓통신 구현하기 (0) | 2020.03.30 |
[C++] 2차원벡터 사용 예시 (0) | 2020.03.08 |
[C/C++, 시간측정법]C언어(visual studio) 시간측정법 (0) | 2020.02.11 |
[C/C++]C언어 소스 최적화(시간효율, 메모리효율성 증대) (0) | 2020.02.11 |