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