정확히는 list에 담을 데이터는 따로 동적할당을 해주지 않아도 힙에서 관리되나요? 아니면 스택에서 관리되나요?
꽤 많은 데이터를 list로 관리해야할 일이 있는데, 메모리 효율을 위해서 boost의 pool로 동적할당한 뒤 list에 넣어야할지, 아니면 그냥 객체 하나 만들어서 바로 넣어도 될지 궁금하네요
std::array를 제외한 모든 STL컨테이너는 힙에 요소들이 할당됩니다.
pool을 쓸지 말지는 직접짜서 테스트해보고 결정하시면 됩니다.
allocator라고 메모리 할당에 대한 전략?을 담당하는 객체를 넣어주는 부분이 있습니다.
보통은 디폴트가 지정되어서 크게 신경안쓰고 넘어가는 부분인데,
다른 제어가 필요하다면 자신만의 allocator를 만들어서 할당에 대해서 자신이 바꿔줄 수 있습니다.
이 부분은 effective STL을 읽어보시면 좀 더 깊게 아실수 있을껍니다.
많은 도움이 되었습니다!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
std::array를 제외한 모든 STL컨테이너는
std::array를 제외한 모든 STL컨테이너는 힙에 요소들이 할당됩니다.
pool을 쓸지 말지는 직접짜서 테스트해보고 결정하시면 됩니다.
STL 생성자를 보면
allocator라고 메모리 할당에 대한 전략?을 담당하는 객체를 넣어주는 부분이 있습니다.
보통은 디폴트가 지정되어서 크게 신경안쓰고 넘어가는 부분인데,
다른 제어가 필요하다면 자신만의 allocator를 만들어서 할당에 대해서 자신이 바꿔줄 수 있습니다.
이 부분은 effective STL을 읽어보시면 좀 더 깊게 아실수 있을껍니다.
감사합니다
많은 도움이 되었습니다!
댓글 달기