DevC++:我如何编程正确地迭代 STL 集合中的所有元素?

DevC++: How I program iterating over all elements from an STL collection properly?

我目前正在研究循环,我发现了这个,我在 DevC++ 上对其进行了编程,这是我的代码。

#include

#include <向量>

使用命名空间标准;

int main()

{

std::vector < std::string > names = {"Albert Einstein", "Stephen Hawking", "Michael Ellis"}; for(std::vector< std::string >::iterator it = names.begin(); it != names.end(); ++it) { std::cout << *它<< std::endl; }

}

编译后我遇到了问题,这是编译器说的:

C:\Users\chesc\Pictures\image\loops.cpp 在函数'int main()'中: 9 89

C:\Users\chesc\Pictures\image\loops.cpp [Error] in C++98 'names' 必须由构造函数初始化,而不是由'{...}'

9 89 C:\Users\chesc\Pictures\image\loops.cpp [错误] 无法将 '{"Albert Einstein", "Stephen Hawking", "Michael Ellis"}' 从 '' 转换为 'std::vector >'

首先,请更好地格式化您的问题。将代码放入代码示例中。

为您解答。您的编译器设置为标准 C++98。本标准不允许您使用的初始化方式。

我建议您将编译器设置为它可以支持的最新标准。这意味着 C++11 及更高版本。

您可以在项目选项 -> 编译器 -> 代码生成 -> 语言标准中完成