分享返回数组引用的4种方法:
- 普通法
- 类型别名
- 尾置返回类型
- decltype
#include<iostream>
#include<string>
using namespace std;
//函数返回一个引用,该引用绑定了一个长度为10的string数组
string ( &arra1(string (&i)[10]) )[10]
{
return i;
}
//类型别名之typedef
typedef string s_10[10];
s_10 &arra2( string (&i)[10] )
{
return i;
}
//类型别名之using
using s_10s = string [10];
s_10s &arra2s( string(&i)[10] )
{
return i;
}
//使用尾置返回类型
auto arra3(string(&i)[10])->string(&)[10]
{
return i;
}
//使用decltype
string eg[10] = {"0","0","0","0","0","0","0","0","0","0"};
decltype(eg) &arra4(string(&i)[10])
{
return i;
}
int main()
{
string a[10]={"白","依","山尽","黄","河","入海流","欲","穷千里目","更上","一层楼"};
cout<<arra1(