数组,想必大家都知道吧,长这样:intnative_arr[3];std::数组arr;那二维数组呢,如果我需要定义一个3行4列的数组,是不是这样的:intmulti_array_native[3][4];std::array,4>多数组;乍一看,似乎没什么不妥。但是不对,上面的multi_array其实是一个4行3列的数组,但是这个是正确的3行4列的数组:std::array,3>multi_array;其实很容易写出不易发现的bug。可能二维数组比较好,但是如果是多维数组就更难了。有没有办法用std::array正常实现多维数组呢?必须有,也就是要善用模板元编程技巧,这里先实现一个二维数组:templateusingTwoDimMatrix=std::array,R>;其实就是将违反直觉的R和C按如下顺序交换:voidtest_two_dim_matrix(){constexprsize_trow=2;constexprsize_tcol=3;TwoDimMatrix垫子;诠释k=0;for(inti=0;i::类型;使用type=std::array;};templatestructMatrix{usingtype=std::array;};使用如下:voidtest_multi_array(){constexprsize_ta=2;constexprsize_tb=3;constexprsize_tc=4;constexprsize_td=5;矩阵::typemat;诠释你=0;for(inti=0;i