Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Interesting. I do remember inspecting _M_begin and end in the debugger.

I can't be bothered to check the implementation now, but the allocated size must be stored somewhere. My first thought of inferring the capacity as the smallest power of two greater than the used size doesn't work as the vector size can shrink without affecting capacity.



The used size is end - begin; the capacity is stored in addition. That’s why sizeof(std::vector<T>) is 24 on x86-64.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: