博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

低级错误

Posted on 2012-05-18 10:41  扬名  阅读(312)  评论(2编辑  收藏  举报

在拷贝STL容器内的内容时,如果是vector,则可以用memcpy来拷贝,因为是内存连续的。

对于其他容器,比如set、map分别是用二叉树和平衡二叉树实现的,所以内存不会是连续的,链表list显然也不连续。deque虽然与vector接口极为相似,但貌似内存也不是连续的。参考侯捷翻译的《C++标准程式库》161页,“在对记忆体区块有所限制的系统中(例如PC系统),deque可以内含更多元素,因为它使用不止一块记忆体,因此deque的max_size()可能更大。”