您的位置:首页 > 编程语言 > C语言/C++

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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: