C++ 向量分配问题

c++ vector allocation question

本文关键字:问题 分配 向量 C++      更新时间:2023-10-16

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

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

上面的代码不起作用。
错误:从"int"到"int*"的转换无效

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

您不需要分配新的向量。 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都是有问题的,而且这个甚至比大多数其他事情更值得怀疑。