我有一个像这样的功能:
void Foo(std::vector<bool> Visited, int actual element);
我实际上将此功能用于Graph中的BFS,但它陷入无限循环。我怀疑它总是创建Visited向量的副本。如何使它更改在main中某个地方声明和初始化的向量?我对整个“复制”理论是否正确?
我认为<vector>
是对象,如何使用指向对象的指针?
使用引用的类型
void Foo(std::vector<bool> &Visited, int actual element);
否则,该函数将处理原始向量的副本。
这是一个演示程序
#include <iostream>
#include <vector>
void f( std::vector<int> &v )
{
v.assign( { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } );
}
int main()
{
std::vector<int> v;
f( v );
for ( int x : v ) std::cout << x << ' ';
std::cout << std::endl;
}
程序输出为
0 1 2 3 4 5 6 7 8 9
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句