if (isbn==0)
break;
vi.push_back(isbn); // insert element into vector
}
}
在 vector
对象构造期间,它先分配一个由其实现定义的默认的缓存大小。一般 vector
分配的数据存储初始空间是 64-256 存储槽(slots
)。当 vector 感觉存储空间不够时,它会
自动重新分配更多的内存。实际上,只要你愿意,你可以调用 push_back() 任何多次,甚
至都不用知道一次又一次的分配是在哪里发生的。
为了存取 vector
元素,使用重载的 []
操作符。下列循环在屏幕上显示所有 vector 元
素:
for (int n=0; n<vi.size(); ++n)
{
cout<<"ISBN: "<<vi[n]<<endl;
}
第二步:优化
在大多数情况下,你应该让 vector 自动管理自己的内存,就像我们在上面程序中所
做的那样。但是,在注重时间的任务中,改写默认的分配方案也是很有用的。假设我们预
先知道 ISBNs
的数量至少有 2000
。那么就可以在对象构造期间指出容量,以便 vector 具
有至少 2000 个元素的容量:
vector <int
> vi(2000); //
初始容量为 2000 个元素
除此之外,我们还可以调用 resize() 成员函数:
vi.resize(2000);//
建立不小于 2000 个元素的空间
这样,便避免了中间的再分配,从而提高了效率。