例如,我想映射
1 2 3
3 4 1 -> 0
1 1 1
1 2 3
1 1 2 -> 1
1 1 1
等等。是否可以使用std :: map?
编辑:我的意思是问我是否有二维数组或一维向量数组,如何用一些整数值映射它。
答案 0 :(得分:3)
使用tokenizer = RegexpTokenizer(r'\w+')
tokens = tokenizer.tokenize(sentence)
的{{1}},如:
std::array
如果在编译时不知道行和列,则可以使用std::array
std::map< int, std::array<std::array< int , 3>, 3> > m =
{ {0, {{ { 1,2,3},
{ 3,4,1},
{ 1,1,1}
}}
},
{1, {{
{ 1,2,3},
{ 1,1,2},
{ 1,1,1}
}}
}
};
std::vector
对于相反的映射矩阵到整数,您只需颠倒顺序:
std::vector
或
std::map< int, std::vector<std::vector< int > > > m;
答案 1 :(得分:0)
如果我有一个二维数组或一维向量数组,我该如何用一些整数值映射它。
我认为你的意思是&#34; map&#34;在这里一般意义上讲。您有几种选择:
您可以使用函数动态计算映射。
您可以将映射存储在std::map
。
如果在每个矩阵上重复执行计算,则选项2将使用内存来节省CPU周期。如果不经常执行计算,选项1将使用更少的内存但CPU周期更多。您应该实现这两个并分析您的代码以衡量确切的权衡。