c++ - 将 vector 作为参数传递给函数

标签 c++ function stl

我有这样一个函数:

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/

相关文章:

R:矩阵乘法错误(不一致的参数)

c++ - 内联还有用吗?

c++ - 如何组合一些仿函数来生成 `isOdd` 函数?

c++ - 在哪里放置STL/模板代码c++?

c++ - 在 C++ 11 线程中通过引用传递;变化是本地化的

c++ - "pure virtual method called"实现 boost::thread 包装器接口(interface)时

php - 传递默认值而不是引用

c++ - 将 TopoDS_Face 对象分配给其子对象编译时没有错误,但有 3 个 valgrind 错误

c++ - Qt 应用程序不打印 ěčř

c++ - 使用STL在列表<>中查找最小值