首页 > 解决方案 > DevC++:我如何正确编程迭代 STL 集合中的所有元素?

问题描述

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

#include <iostream>

#include <向量>

使用命名空间标准;

主函数()

{

std::vector < std::string > names = {“阿尔伯特爱因斯坦”,“斯蒂芬霍金”,“迈克尔埃利斯”};for(std::vector< std::string >::iterator it = names.begin(); it != names.end(); ++it) { std::cout << *it << std::结束;}

}

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

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 > '

标签: dev-c++

解决方案


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

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

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

您可以在项目选项 -> 编译器 -> 代码生成 -> 语言标准中执行此操作


推荐阅读