创建我的第一个向量时出错 [Visual Studio 2013]

Posted

技术标签:

【中文标题】创建我的第一个向量时出错 [Visual Studio 2013]【英文标题】:Error with the creating of my first vector [Visual studio 2013] 【发布时间】:2014-11-28 17:24:17 【问题描述】:

我正在学习 C++ 编程语言,但我的第一个向量出现了一些问题。如果我按照书中的示例(编程原理和使用 C++ 的实践),这就是示例:

vector<int> v =  5, 7, 9, 4, 6, 8 ; 

这里是我的编译器所说的:Errore 1 error C2440: 'initializing' : cannot convert from 'initializer-list' to 'Vector' c:\users\pierob\documents\visual studio 2013\projects\learnprogramming\learnprogramming\ main.cpp 7 1 学习编程

你能帮帮我吗?我有 Visual Studio 2013 Express(我使用 Visual C++ 编译器 2013 年 11 月 ctp)。

【问题讨论】:

我没有用过visual studio,但我可以告诉你的是,上面的例子只适用于c++11。在编译时设置适当的标志。 cplusplus.com/reference/vector/vector/vector cplusplus.com/forum/beginner/149062 - 感谢您在多个论坛上发布此问题。这可能会有所帮助 - v(6) 因为您初始化向量并为 6 个元素腾出空间并将这些元素初始化为 0。向我们展示更多代码。 这只是说明你的VS版本不完全支持c++11。 @learningToCode 如何设置这些标志?我需要什么标志来运行我的程序? 你能把所有的文件都贴出来吗?在您的错误消息中,我看到“矢量”而不是“矢量”。 【参考方案1】:

错误消息显示Vector,而不是vector,因此您实际编译的代码看起来有些可疑。

使用 Visual Studio 2013 Update 3,以下编译错误为 0:

#include <vector>

int main()

    std::vector<int> v =  5, 7, 9, 4, 6, 8 ;

输出:

1>  main.cpp
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

请复制上面的代码并编译它以确保它不会出错。

【讨论】:

是的,它给了我错误,这就是我编译时所说的 Errore 1 error C2039: 'Vector' : is not a member of 'std....... ......Errore 2错误C2143:语法错误:缺少';'在' 我尝试在不使用作者定义的库的情况下编译程序,看看会发生什么并且它工作正常,所以我认为std_lib_facilities头中有错误,现在我必须找到如何纠正该错误【参考方案2】:

在 std_lib_facilities.h 头文件的第 99 行(对我来说)是一个明显令人作呕的宏 hack,用于获取一个范围检查向量,上面写着:

#define vector Vector

我把它改成了:

#define vector vector

和你的代码:

vector<int> v =  5, 7, 9, 4, 6, 8 ;

似乎按预期工作。

【讨论】:

以上是关于创建我的第一个向量时出错 [Visual Studio 2013]的主要内容,如果未能解决你的问题,请参考以下文章

加载Visual Studio 2012和2015项目时出错

平均 Word2Vec 创建向量时出错

在 Visual C# 中修复我的 MS Access 数据库时出错

在 C++ 中的 Visual Studio 中创建简单的类实例时出错。初学者

编译类型向量类的私有成员时出错 - C++ [重复]

创建对象向量时出错