C++ 错误:<;bits/stdc++;。h>';cstdalign';未找到文件,正在运行C++;17
我试图在macOS Catalina上运行Visual Studio代码中的一段代码。 守则:C++ 错误:<;bits/stdc++;。h>';cstdalign';未找到文件,正在运行C++;17,c++,xcode,c++11,visual-studio-code,c++17,C++,Xcode,C++11,Visual Studio Code,C++17,我试图在macOS Catalina上运行Visual Studio代码中的一段代码。 守则: #include <bits/stdc++.h> using namespace std; int main() { // Create an empty vector vector<int> vect; vect.push_back(10); vect.push_back(20); vect.push_bac
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Create an empty vector
vector<int> vect;
vect.push_back(10);
vect.push_back(20);
vect.push_back(30);
for (int x : vect)
cout << x << " ";
return 0;
}
#包括
使用名称空间std;
int main()
{
//创建一个空向量
向量向量;
矢量推回(10);
向量推回(20);
向量推回(30);
for(int x:vect)
cout#include
是GCC的内部标题,您不应该使用它,它不可移植
删除#包含
安装的写入#包括和#包括
此外,还将其视为不良做法
所以你的代码应该是这样的:
#include <vector>
#include <iostream>
int main()
{
// Create an empty vector
std::vector<int> vect;
vect.push_back(10);
vect.push_back(20);
vect.push_back(30);
for (int x : vect)
std::cout << x << " ";
return 0;
}
#包括
#包括
int main()
{
//创建一个空向量
std::vector-vect;
矢量推回(10);
向量推回(20);
向量推回(30);
for(int x:vect)
std::cout我也遇到了同样的问题。首先,我通过自制软件安装了gcc
brew安装gcc
为了避免与现有的gcc(和g++)二进制文件发生冲突,homebrew将二进制文件命名为带有version后缀。在发表此评论时,最新版本是gcc-10
在此之后,您不必复制位/stdc++.h
。只需使用g++-
而不是g++
进行编译,这将使用自制安装的二进制文件而不是默认的osx二进制文件。对我来说,这是
g++-10-Wall-O2-std=c++11 test.cpp-o test
要检查homebrew安装的二进制名称,您可以查看/usr/local/bin
目录,因为homebrew安装软件包的地方就是这个目录
另外,请确保usr/local/bin
在$PATH
中位于/usr/bin
之前。对我来说,在文件bits/stdc++.h
中注释以下行是有效的:
// #include <cstdalign>
...
// #include <cuchar>
/#包括
...
//#包括
该文件位于/usr/local/include/bits/
以及/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/bits
中。
我不知道你是否必须在两个文件中都这样做,但第一个文件对我有效
12月24日更新:
如果在命令行中使用g++,则无需将任何文件移动到任何目录中
例如,当我使用命令:g++custom_file.cpp
时,它工作正常!
此外,您还可以添加-std=c++11
,以获得最需要的函数。
另外,在Xcode得到更新后,我不必移动位/stdc++.h
文件
我希望这有帮助
我正在与下面的命令一起使用数组旋转的示例代码共享要执行的步骤
g++-10-Wall-O2-std=c++11使用deque.cpp旋转
然后生成一个.out文件
/a.out
示例代码
#包括
#包括
使用名称空间std;
int main()
{
int n,r,i,j,温度=0,n1;
德克五世;
cin>>n>>r;
对于(i=0;i>n1;
v、 推回(n1);
}
对于(j=0;jdont ever use@yaodav是的,我意识到这是可行的。但我想知道为什么我在使用时指出的错误会出现。有什么想法吗?我很惊讶搜索bits/stdc++.h
,所以你几乎每天都不会遇到类似的问题。这个标题当然是不可移植的,但如果有,它应该会起作用……什么t是否为您打印g++--version
版本?是的,我意识到这确实有效。但我想知道为什么我在使用时指出的错误会出现。有什么想法吗?是否内部头文件可能是头文件的一部分,它的包含文件不在macOS c++库中,也从错误消息中指出-他找不到“#包含”我已经添加了更多的信息,如果有帮助的话,根据G+++的版本,你有4.2.1我不认为它支持C++ 11尝试更新你的GCC版本。而且,我不反对其他的评论,说我们不应该使用<代码> BS/STDC++.H./C>和<代码>使用我们的代码中的命名空间STD;<代码>。现在,如果我们必须使用它,那么如何使它工作。任何建议编辑或显式使用bits/stdc++.h
标题的答案,恕我直言,都是完全误导性的。根据答案,MacOSX没有uchar.h
文件,因此您不能#include
。也许您可以下载它并将其粘贴到正确的目录。我还没试过这个。
// #include <cstdalign>
...
// #include <cuchar>
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,r,i,j,temp=0,n1;
deque<int> v;
cin>>n>>r;
for(i=0;i<n;i++)
{
cin>>n1;
v.push_back(n1);
}
for(j=0;j<r;j++)
{
temp = v.front();
v.pop_front();
v.push_back(temp);
}
for(auto x:v)
{
cout<<x<<" ";
}
cout<<endl;
return 0;
}