不存在从 “int” 转换到 “std::vector<int, std::allocator>” 的适当构造函数
本人系统是win10,编辑器是vscode,编译器是MinGW-w64。
在vector容器使用花括号初始化时,出现“不存在从 “int” 转换到 “std::vector<int, std::allocator>” 的适当构造函数”的报错。
这是因为使用花括号初始化vector是c++11的特性,而貌似我配置的vscode默认不是c++11的标准,但是仍然可以在vscode的终端输入g++ -std=c++11 yourfilename.cpp -o yourfilename.exe
来进行编译。这样虽然麻烦点,但是也能解决问题。
但是,有更好的方法。在vscode中按下ctrl+shift+p
,输入C/C++: Edit Configurations (UI)
,进入如下界面:
点击红圈部分的json文件,进入进行编辑
圈出来的部分分别是编译c和c++的标准,默认的是c++17,如要使用c++11标准,把17改成11即可。我这里是使用的c++14的标准。
参考文档:vscode官方配置c++文档