【问题标题】:Issue with C++ Vector implementation [closed]C ++ Vector实现的问题[关闭]
【发布时间】: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&lt;int&gt; myVector = {10, 20, 30, 40, 50};做列表初始化:onlinegdb.com/SJv-c6BQu(大括号,不是括号)
  • 初始化myVector时有括号。您需要花括号 ({})。并确保您使用 C++11 或更高版本进行构建。
  • 阅读有关操作符逗号的信息,您将了解错误消息的含义。
  • 感谢大家的回复。我实际上尝试将其更改为大括号 {},但出现以下错误。
  • 正如已经指出的,您必须使用 C++11 或更高版本。不幸的是,虽然基本上所有编译器都支持 C++11(及更高版本),但有些编译器默认不启用支持(事实上,您的编译器告诉您如此;在错误中的“C++98”内容中消息。)您应该检查一下如何在您的开发环境中启用 C++11。

标签: c++ vector iterator


【解决方案1】:

正如@yzt 和@Stephen Newell 所说,我的IDE 已经过时了。更新到较新版本后,代码按预期执行。此外,如@Jerry Jeremiah 和@Stephen Newell 所述, () 需要回到原来的 {}。我对过时 IDE 的理解直接来自 @yzt 的评论。谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 2016-03-30
    • 2013-08-19
    相关资源
    最近更新 更多