c++ - 传递一个向量> 进入函数给出内存错误
问题描述
所以我在 codeforces 中编写了一个简单的程序,它使用 DFS 来横向并找到从 S 到 D 的路径。我的 DFS 函数是递归函数,有两种形式。
1. bool DFS(int u, int v, vector<vector<int>> nb)
2. bool DFS(int u, int v)
在第一种形式 (1.) 中,我将代理列表 (nb) 作为函数的参数传递,在第二种形式 (2.) 中,我将 nb 设为全局变量,因此我不需要将 nb 作为参数传递争论。但是,(1.)给了我一个内存限制,而选项 2 没有。
我想知道,将 nb 作为参数传递是否会复制整个列表。我建议这样做,因为这可以解释内存错误。还是只是将指针地址复制到列表中?(如果是这样,问题一定是内存紧张)。
问题:https:
//codeforces.com/problemset/problem/500/A soln (1.) https://codeforces.com/contest/500/submission/83148365
soln (2.) https://codeforces.com/比赛/500/提交/83148036
解决方案
这个功能:
bool DFS(int u, int v, vector<vector<int>> nb)
需要vector
副本,所以是的,这可能非常昂贵。
相反,您可以vector
通过引用获取参数:
bool DFS(int u, int v, vector<vector<int>> & nb)
甚至更好,通过 const 参考,如果你不想改变它:
bool DFS(int u, int v, vector<vector<int>> const & nb)
推荐阅读
- android - ADB在华为Mate8上显示权限错误
- windows - 在第一个空格之前将变量缩减为所有变量
- python-3.x - 如何将列读取为字节?
- android - 如何将音乐服务从一个活动传递到另一个活动
- python - 以 Python 方式在嵌套元组列表的列表中展平嵌套元组
- reactjs - Ionic - React - 动态表单创建
- python - 如何将标签添加到pairplot?
- pine-script - Pinescript strategy.entry 多头/空头似乎被额外的 2 根蜡烛延迟
- reactjs - 如何将 React-Select 中的选定值转发到 react-hook-form
- r - mlrMBO 贝叶斯优化中 SVM 超参数调整的错误