我在 ubuntu16 上运行 VScode,并测试 helloworld.cpp。一开始,我遍历了所有,然后我尝试编辑tasks.json。我得到了错误。好的,我用回滚取消了所有更改,它显示错误 aagin。我删除了 helloworld 文件夹,然后再试一次 helloworld。在终端 > 配置默认构建任务并构建后,错误再次显示。怎么了?它来自 vscode。
错误信息:
执行任务:/usr/bin/g++ -g /home/liwenz/helloworld/.vscode/tasks.json -o /home/liwenz/helloworld/.vscode/tasks <
/usr/bin/ld:/home/liwenz/helloworld/.vscode/tasks.json:文件格式无法识别;视为链接器脚本 /usr/bin/ld:/home/liwenz/helloworld/.vscode/tasks.json:1: 语法错误 collect2: 错误: ld 返回 1 退出状态终端进程以退出代码终止:1
任务文件
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
Run Code Online (Sandbox Code Playgroud)
}
helloworld 链接是https://code.visualstudio.com/docs/cpp/config-linux
使用矢量时,显示“内存不足”。
为了解决这个问题,我使用 max_size() 来检查,然后保留或 Push_back。
如果max_size()比保留值大应该没问题,但是不行!那么max_size()的意义是什么?
我在 Windows 7 和 Visual Studio 2010 中编译了下面的演示。我的电脑有 4GB RAM。当reserved是max_size()的1/2时,失败。
max_size()=2^32/sizeof(CPoint3D)-1=268435455
Run Code Online (Sandbox Code Playgroud)
演示中max_size()的1/4就可以了。在我的实际项目中,直到1/10都可以。
矢量的最大尺寸是多少,如何放大它?
当我将大量元素推入std::vector. 为了避免这个错误,我vector::max_size()首先检查了,并使用vector::reserve()预分配内存。然而,这不起作用。在演示项目中,当我保留 1/4 的max_size. 在实际项目中,当我保留1/10时,就会出现错误。我正在运行 Windows 7 并使用 Visual Studio 2010 进行编译。我的计算机有 4GB RAM。
如果max_size不起作用,我如何找出可以为 a 分配的最大元素数vector?