#include "iostream"
#include "array"
using namespace::std;
//void func(int arr[][5],int len)
//{
//    for (int ii = 0; ii < 10; ++ii) {
//        for (int jj = 0; jj < 5; ++jj) {
//            cout<<arr[ii][jj]<<" ";
//        }
//        cout<<endl;
//    }
//}
//
//void func(const array<array<int,5>,10>&arr)
//{
//    for (int ii = 0; ii < arr.size(); ++ii) {
//        for (int jj = 0; jj < arr[ii].size(); ++jj) {
//            cout<<arr[ii][jj]<<" ";
//        }
//        cout<<endl;
//    }
//}
template<typename T>
void func(const T&arr)
{
    for (int ii = 0; ii <arr.size() ; ++ii) {
        for (int jj = 0; jj < arr[ii].size(); ++jj) {
            cout<<arr[ii][jj]<<" ";
        }
        cout<<endl;
    }
}
int main()
{
    //int aa[10]={1,2,3,4,5,6,7,8,9,10};//一维数组。
    array<int,10>aa={1,2,3,4,5,6,7,8,9,10};//一维数组。
//    for (int ii = 0; ii < 10; ++ii) {//传统的方法。
//        cout<<aa[ii]<<" ";
//    }
//    cout<<endl;
//
//    for (auto val:aa) {//利用array的size()方法.
//    cout<<val<<" ";
//    }
//    cout<<endl;
//
//    for (auto it = aa.begin(); it < aa.end(); it++) {//使用迭代器
//        cout<<*it<<" ";
//    }
//    cout<<endl;
//    for (auto val:aa) {//基于范围的for循环。
//        cout<<val<<" ";
//    }
//    cout<<endl;
    //对二维函数赋值
//    int bb[10][5];
//    for (int ii = 0; ii < 10; ++ii) {
//        for (int jj = 0; jj < 5; ++jj) {
//            bb[ii][jj]=jj*10+ii;
//        }
//    }
//
//    func(bb,10);//把二维数组传值给函数
    array<array<int,5>,10> bb;
    for (int ii = 0; ii < bb.size(); ++ii) {
        for (int jj = 0; jj < bb[ii].size(); ++jj) {
            bb[ii][jj]=jj*10+ii;
        }
    }
    func(bb);//把二维数组传给函数
}
输出:
0 10 20 30 40
1 11 21 31 41
2 12 22 32 42
3 13 23 33 43
4 14 24 34 44
5 15 25 35 45
6 16 26 36 46
7 17 27 37 47
8 18 28 38 48
9 19 29 39 49

发表回复