C++中标准库类型vector的初始化化问题

寒风飘飘0543 2014-09-23 07:47:07
我最近在看《C++ primer 第5版》这本书,看到vector这一节,上面说vector对象可以进行列表初始化,如下:
vector<string> ia{"hello","world"};
但是用vs2012编译试了一下,发现编译时会报错,代码如下:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>


int main()
{
using namespace std;

vector<string> ia{"hello","world"};

for(auto c:ia)
cout<<c<<" ";

return 0;
}
报错信息如下:
1>e:\c++\sample2\sample2\sample2.cpp(14): error C2601: “ia”: 本地函数定义是非法的
1> e:\c++\sample2\sample2\sample2.cpp(11): 此行有一个“{”没有匹配项
1>e:\c++\sample2\sample2\sample2.cpp(14): error C2143: 语法错误 : 缺少“;”(在“}”的前面)
1>e:\c++\sample2\sample2\sample2.cpp(16): error C2065: “ia”: 未声明的标识符

那位热心的朋友帮忙看一下,是什么问题造成的?谢谢
...全文
412 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
寒风飘飘0543 2014-09-23
  • 打赏
  • 举报
回复
知道了,非常感谢!
引用 6 楼 brookmill 的回复:
[quote=引用 5 楼 wkissll 的回复:] C++11的标准不是11年发布的吗,vs2012难道还不能完全支持吗?我试了其余的新标准,还是可以用的。
从标准出来到编译器支持,还是需要一些时间的。 http://www.csdn.net/article/2013-03-18/2814528-c11-compiler-support-shootout-visual-studio-gcc-clang-intel[/quote]
brookmill 2014-09-23
  • 打赏
  • 举报
回复
引用 5 楼 wkissll 的回复:
C++11的标准不是11年发布的吗,vs2012难道还不能完全支持吗?我试了其余的新标准,还是可以用的。
从标准出来到编译器支持,还是需要一些时间的。 http://www.csdn.net/article/2013-03-18/2814528-c11-compiler-support-shootout-visual-studio-gcc-clang-intel
寒风飘飘0543 2014-09-23
  • 打赏
  • 举报
回复
C++11的标准不是11年发布的吗,vs2012难道还不能完全支持吗?我试了其余的新标准,还是可以用的。
引用 1 楼 brookmill 的回复:
你这是c++11的写法,不知道VS2012对c++11的支持程度如何。g++和VS2013表示没有压力
寒风飘飘0543 2014-09-23
  • 打赏
  • 举报
回复
编辑器有些C++11的新标准都是支持的,比如范围for语句,难道只是部分支持新标准吗?
引用 2 楼 jwj070524 的回复:
估计编译器不支持c++11吧。
laowang2 2014-09-23
  • 打赏
  • 举报
回复
对,这是新语法。
jwj070524 2014-09-23
  • 打赏
  • 举报
回复
估计编译器不支持c++11吧。
brookmill 2014-09-23
  • 打赏
  • 举报
回复
你这是c++11的写法,不知道VS2012对c++11的支持程度如何。g++和VS2013表示没有压力

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧