【发布时间】:2021-06-08 00:24:30
【问题描述】:
所以我有一个有趣的问题,我从教科书中复制了一些代码作为笔记。我喜欢打出这些小示例程序并运行它们来帮助自己理解它们。话虽如此,我实际上是逐字输入了这个程序,但是在点击编译和运行后我得到了一个错误。我不确定它是否与我的 IDE 有关。这是程序,下面是错误。提前感谢您的任何帮助
//use of iterator, begin, and end
#include <iostream>
//include iterators
#include <iterator>
//include vectors for use
#include <vector>
using namespace std;
//the main function
int main() {
vector<int> myVector = (10, 20, 30, 40, 50);
//declare iterator
vector<int>::iterator
myIterator;
cout << "My vector values are: ";
//use begin and end to print values to screen
for(myIterator = myVector.begin(); myIterator <
myVector.end(); myIterator++) {
cout << * myIterator << " " ;
} //end of for loop
return 0;
} //end main
如下所示,第 14 行出现错误。再次,这个程序是从我的教科书中逐行输入的,所以我可以学习它,但是当我编译和运行时它不起作用。我也尝试将向量中的值周围的 () 更改为 {},但这样做后仍然出现错误。
14 44 C:\Users\hulkg\OneDrive\Documents\C++ 代码示例\Iterator_begin_end.cpp [错误] 请求从“int”转换为非标量类型“std::vector”
【问题讨论】:
-
你想让
vector<int> myVector = {10, 20, 30, 40, 50};做列表初始化:onlinegdb.com/SJv-c6BQu(大括号,不是括号) -
初始化
myVector时有括号。您需要花括号 ({})。并确保您使用 C++11 或更高版本进行构建。 -
阅读有关操作符逗号的信息,您将了解错误消息的含义。
-
感谢大家的回复。我实际上尝试将其更改为大括号 {},但出现以下错误。
-
正如已经指出的,您必须使用 C++11 或更高版本。不幸的是,虽然基本上所有编译器都支持 C++11(及更高版本),但有些编译器默认不启用支持(事实上,您的编译器告诉您如此;在错误中的“C++98”内容中消息。)您应该检查一下如何在您的开发环境中启用 C++11。