2020 이전/C++

vector대 list

이상해C++ 2019. 10. 11. 19:09

퀘스트를 작업할 때, list 컨테이너로 퀘스트 목록을 관리하고 있었는데 갑자기 찾아온 뇌절

vector를 쓰면 어떻게 될까?

과연 어떻게 될까? 

 

요약

int 자료형 앞에서 부터 삭제할 때 4만개~5만개부터 list가 빠름

int 10000개 기준으로 앞의 원소를 제거하는 속도는 16byte까지 vector가 우세

string 넣는 순간부터 심각하게 늦어짐

순수 int로 32byte 채우고 int char섞어서 32byte 채운 구조체로 시험해 봤을 때 성능 차이 거의 없음

 

결론

string을 제거하는게 best. string을 썼는데 자주 정렬할 때 list를 사용. 그래도 쓸거면 역시 string 대신 char 써라

 

int 자료형

 

Quest(실제 썼던 자료형) (string기본적으로 3개 들어있다)

 

int로 구성된 struct들

 

문자열 들어갔을 때(string)

문자열 들어갔을 때(char[256])

문자열 들어갔을 때(char[64])