我写了下面的代码,其中我已经初始化的向量与沿着与声明的向量。就像数组,但它抛出以下错误:-
密码是:-
# include <iostream>
# include <vector>
using namespace std;
int main()
{
vector <int> v = {1,2,3,4,5};
vector <int> :: iterator it ;
it = v.begin();
cout<< (*it) <<endl;
return 0;
}
字符串
我收到的输出IIN实际上是:-
apple@Apples-MacBook-Air Iterators % cd "/Users/apple/Desktop/CODE/Iterators/" && g++ iteratorsBasics.cpp -o iterat
orsBasics && "/Users/apple/Desktop/CODE/Iterators/"iteratorsBasics
iteratorsBasics.cpp:8:18: error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list
vector <int> v = {1,2,3,4,5};
^ ~~~~~~~~~~~
1 error generated.
apple@Apples-MacBook-Air Iterators %
型
作为初学者,我不知道如何解决这个问题,请帮助。
我通过在互联网上看到一些视频在终端检查的c++版本如下:
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: arm64-apple-darwin21.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
型
4条答案
按热度按时间8fsztsew1#
您正在编译C98或C03标准版本。将标志
-std=c++11
(或更高版本:c++14
/c++17
/c++20
)添加到编译器调用中,它应该可以编译。在C++11之前,
std::vector
构造函数的std::initializer_list
和std::initializer_list
重载并不存在。tkclm6bt2#
尝试使用以下编译器标志编译代码:
字符串
所以命令:
型
r7knjye23#
添加此
字符串
如果你使用CMake,
jgzswidk4#
1.转到代码运行器扩展设置,然后向下滚动,直到看到此执行器Map。
1.按cmd+f然后搜索代码运行器。executorMap make changes at highlighted place only
1.然后在cpp下,在g之后写**-std=c17**,如ss中所示。
1.保存它,然后运行你的程序。