c ++向量分配问题

时间:2013-09-26 00:16:10

标签: c++

我正在尝试将矢量推入列表中。 我的问题是,在将新矢量推入列表后,如何分配新矢量。

std::list<std::vector<int>> foolist;
std::vector<int> foo;

while(1)
{
  foolist.push_back(foo);
  foo = new std::vector<int>;
}

上述代码不起作用 错误:从“int”到“int *”

的转换无效

这是一个加密类。我需要生成一堆哈希并检查冲突。所以是的,在某些方面,如果我找不到碰撞,我将耗尽内存。 (碰撞 - 找到将生成相同哈希的输入)。

1 个答案:

答案 0 :(得分:3)

您不需要分配新的矢量。 std::list实际上会保存您所推送内容的副本,因此您可以这样做:

std::list<std::vector<int>> foolist;
std::vector<int> foo;

for (int i=0; i<100; i++)
  foolist.push_back(foo);

然而,这可能是一个错误 - 我认为几乎所有使用std::list都是有问题的,而且这个比其他大多数人都要多。