使用deque的情况下
当一块存储块发生溢出时会发生什么事情
//: C07:DequeOverflow.cpp {-bor}
// From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison.
// (c) 1995-2004 MindView, Inc. All Rights Reserved.
// See source code use permissions stated in the file 'License.txt',
// distributed with the code package available at www.MindView.net.
// A deque is much more efficient than a vector when
// pushing back a lot of elements, since it doesn't
// require copying and destroying.
//{L} Noisy
#include <cstdlib>
#include <deque>
#include "Noisy.h"
using namespace std;
int main(int argc, char* argv[]) {
int size = 1000;
if(argc >= 2) size = atoi(argv[1]);
deque<Noisy> dn;
Noisy n;
for(int i = 0; i < size; i++)
dn.push_back(n);
cout << "\n cleaning up " << endl;
getchar();
} ///:~
输出
d[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
c[0]
输出省略 后面都是 c[0]
cleaning up
在 cleaning up 输出出现之前
有比较少析构函数的调用
因为deque在多个块中分配所有的存储区
而不是像vector一样使用一个类数组的存储区