#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef vector<vector<int>> twoDimIntArray; //定义一个二维的向量,和二维数组同样的概念 twoDimIntArray testReturnArray(twoDimIntArray a) //该函数能实现传递一个二维向量,返回一个二维向量 { cout<<"call testReturnArray"<<endl; a[1][2]=0; return a; //在这个里面可以随便对这个二维向量修改 } class print_array { public: void operator()(vector<int> one_array) { cout<<endl; for_each(one_array.begin(),one_array.end(),print_array()); cout<<endl; } void operator()(int element) { cout<<element<<" "; } }; int main() { int two_dim_int [2][3]={{1,2,3},{9,8,7}}; //初始化一个二维数组 vector<int> one(two_dim_int[0],two_dim_int[0]+3); vector<int> two(two_dim_int[1],two_dim_int[1]+3); vector<int> vectorArray[]={one,two}; twoDimIntArray hello(vectorArray,vectorArray+2);//初始化一个二维向量 cout<<"输出原始二维向量hello"<<endl; for_each(hello.begin(),hello.end(),print_array()); twoDimIntArray hi=testReturnArray(hello); cout<<"经过函数调用之后的向量hello"<<endl; for_each(hello.begin(),hello.end(),print_array()); cout<<"返回的二维向量hi"<<endl; for_each(hi.begin(),hi.end(),print_array()); int i; cin>>i; } //能输入一个二维的数组,返回一个二维的数组,不是传指针,是按值传递//哦。花了20分钟才写出来的。 转自网络。