1
我有一个关于vectors-使用相同的载体,而不调整大小()部分
vector<int> vec(1,0);
while(//something_1)
{
while(//something_2)
{
...
vec.pushback(var)
...
}
process(vec.size()); //every iteration- different size
vec.clear();
vec.resize(0,0);
}
在此区分每一个vec.pushback(var)
有一个与大小由一个比前者大数组新的数组的重新分配问题。
我的问题是,如果有一种方法使用一个矢量,所以在内部之后,vec.pushback(var)
命令将从第一个单元vec
推回?而不是使用vec.clear()
和vec.resize(0,0)
?所以我可以保存调整大小的部分和重新分配。
矢量的大小是该函数process(vec.size())
由于重要。
如果是这样的话,那么你的'矢量'实现是可怕的破碎。 'push_back'应该使其成倍增长,并且不应该在'clear'之后重新分配,直到它增长到超出其容量(这将至少与旧的大小一样大)。你怎么确定它为每个'push_back'增长一个? –