c++数组遍历十种方式
2017-02-09 11:44
351 查看
int ia[3][4] = {1,2,3,4,5,6,7,8};
//下标
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cout << ia[i][j] << endl;
}
}
//指针
for (int(*p)[4] = ia; p != ia + 3; p++)
{
for (int *q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//指针,迭代
for (int(*p)[4] = begin(ia); p != end(ia); p++)
{
for (int* q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//范围for
for (int (&p)[4] : ia)
{
for (int q : p)
{
cout << q << endl;
}
}
typedef int int_array[4];
//类别名+指针
for (int_array* p = ia; p != ia + 3; p++)
{
for (int* q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//类别名+迭代
for (int_array *p = begin(ia); p != end(ia); p++)
{
for (int* q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//类别名+范围for
for (int_array &p : ia)
{
for (int q : p)
{
cout << q << endl;
}
}
//auto
for (auto p = ia; p != ia + 3; p++)
{
for (auto q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//auto+迭代
for (auto p = begin(ia); p != end(ia); p++)
{
for (auto q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//auto+范围for
for (auto &p : ia)
{
for (auto q : p)
{
cout << q << endl;
}
}
//下标
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
cout << ia[i][j] << endl;
}
}
//指针
for (int(*p)[4] = ia; p != ia + 3; p++)
{
for (int *q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//指针,迭代
for (int(*p)[4] = begin(ia); p != end(ia); p++)
{
for (int* q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//范围for
for (int (&p)[4] : ia)
{
for (int q : p)
{
cout << q << endl;
}
}
typedef int int_array[4];
//类别名+指针
for (int_array* p = ia; p != ia + 3; p++)
{
for (int* q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//类别名+迭代
for (int_array *p = begin(ia); p != end(ia); p++)
{
for (int* q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//类别名+范围for
for (int_array &p : ia)
{
for (int q : p)
{
cout << q << endl;
}
}
//auto
for (auto p = ia; p != ia + 3; p++)
{
for (auto q = *p; q != *p + 4; q++)
{
cout << *q << endl;
}
}
//auto+迭代
for (auto p = begin(ia); p != end(ia); p++)
{
for (auto q = begin(*p); q != end(*p); q++)
{
cout << *q << endl;
}
}
//auto+范围for
for (auto &p : ia)
{
for (auto q : p)
{
cout << q << endl;
}
}
相关文章推荐
- c++ 遍历多维数组的10种方式
- C/C++与Java多维数组,遍历与最大值获取方法!
- C++数组参数应用方式探讨
- C++库研究笔记—— [真正正确?]多维数组动态分配正确方式?(之一)
- 数组的定义及遍历方式
- 遍历数组的所有元素的三种方式
- 最好的遍历数组的指针方式
- OC-NSArray数组的三种遍历方式和排序方法
- 从零开始学C++之模板(二):类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
- 数组遍历方式
- php用压栈的方式,循环遍历无限级别的数组(非递归方法)
- 关于03标准C++新添加的数组初始化方式
- C++、WIN API、MFC分别遍历文件夹、获取文件名称的三种方式【耿然原创】
- (32)数组中常用的多遍历方式(33)PHP中预定义的超全局数组
- C++数组参数应用方式探讨(转)
- More Effective C++ 读书笔记 之 不以多态方式处理数组
- 遍历数组的三种方式
- C++中map遍历的两种方式
- C/C++语法[02]---数组作为参数传递的方式
- 数组的遍历方式