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 及更高版本。
您可以在项目选项 -> 编译器 -> 代码生成 -> 语言标准中完成
我目前正在研究循环,我发现了这个,我在 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 及更高版本。
您可以在项目选项 -> 编译器 -> 代码生成 -> 语言标准中完成