我有这样一个函数:
void Foo(std::vector<bool> Visited, int actual element);
我实际上将此函数用于图形中的 BFS,但它会进入无限循环。我怀疑它总是创建 Visited vector 的拷贝。 我如何让它改变在main中某处声明和初始化的 vector ?我对整个“复制”理论是否正确?
如何使用指向对象的指针,如我所想<vector>
是对象吗?
最佳答案
通过引用传递:
void Foo(std::vector<bool>& Visited, int actual element);
^
现在您可以修改传递给 Foo
的原始 vector 。
And am I right with the whole "makes a copy" theory?
是的。声明参数时不带 &
或 *
通过 value = 作为拷贝传递对象。这同样适用于返回类型等。(移动构造函数除外)
关于c++ - 将 vector 作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30941222/