我知道堆栈分配需要固定的时间。据我了解,发生这种情况是因为可以在编译时确定分配大小。在这种情况下,程序知道运行一个功能需要多少内存,并且可以立即分配所需的全部内存。
如果仅在运行时知道分配大小,会发生什么情况?
例如,
void func(){
int n;
std::cin >> n;
// this is a static allocation and its size is only known at run time
int arr[n];
}
Run Code Online (Sandbox Code Playgroud)
编辑:我在Linux上使用g ++ 5.4,此代码编译并运行。
我正在使用 Google Or-Tools 通过使用这个例子来解决一个旅行商问题(基本上我只是用我的距离矩阵替换了距离矩阵)。在示例中,我设置了data['depot'] = 0
.
对于我的应用程序,返回到路径末尾的第一个节点并不重要。我可以从解决方案中删除最后一条边,但我想知道如果我可以完全删除此约束,它可能会找到更好的整体路径。
我正在从某个project/
文件夹运行 vscode 并在某个文件夹中收到“未解析的导入”错误project/impl/
。在impl/
文件夹中,我有 2 个 Python 文件:
# lib.py
class A():
pass
Run Code Online (Sandbox Code Playgroud)
# run.py
from lib import A # vscode error here - unresolved import
...
Run Code Online (Sandbox Code Playgroud)
运行run.py
Python 解释器时发现lib
很好,但 vscode 显示“未解析的导入”错误(截图)。
如果我将导入行更改为from .lib import implementation
(注意点),我会得到相反的行为,其中 vscode 可以很好地解析导入但 Python 解释器失败。
我应该如何导入 lib 或以其他方式配置 vscode 以解决从本地文件夹导入的问题?(显然我不想将本地文件夹的确切路径添加到 vscode 配置文件中,因为我必须为项目中的每个子文件夹都这样做)