创建我的第一个向量时出错 [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项目时出错
在 Visual C# 中修复我的 MS Access 数据库时出错