范围for输出多维数组问题

charleswu82 2014-01-14 11:13:24
c++ primer 6的习题,范围for是c++ 11的新特性,题目是下面例子不能使用auto关键字,请教怎么写
第一个范围for,如果不用auto &row数组被自动转换成首元素地址的指针,不用auto应该怎样写


#include<iostream>
using namespace std;
int main()
{
int ia[3][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11}};
for (const auto &row:ia)
//for (int (*row)[4]:ia)
{
for(auto col:row)
//for(int col:row)
cout<<col<<" ";
}
cout<<endl;
return 0;
}
...全文
141 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
坤哥玩csdn 2014-02-21
  • 打赏
  • 举报
回复
楼主 为什么我的范围for语句会报错,代码如下: #include <iostream> #include <vector> using std::cout; using std::endl; using std::vector; int main() { vector<int> v={0,1,2,3,4,5,6,7,8,9}; for(auto &r : v) r*=2; for(auto beg=v.begin();beg!=v.end();++beg) cout<<*beg<<endl; } 编译指令如下:g++ Test_For_New.cpp -o Test_For_New -std=c++0x 到底是怎么回事呢?
sleeplacker 2014-01-14
  • 打赏
  • 举报
回复
同学该认真看书啊,另外C++ Primer 6还没出吧 改好了
#include<iostream>
using namespace std;
int main()
{
	int ia[3][4] = { { 0, 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11 } };
	//for (const auto &row : ia)
		for (const int (&row)[4]: ia)
	{
		for (int col : row)
			std::cout << col << " ";
		std::cout << endl;
	}
	std::cout << endl;
	return 0;
}
charleswu82 2014-01-14
  • 打赏
  • 举报
回复
谢谢lg1544650023 确实是C++ Primer 5

64,637

社区成员

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

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