如何将矩阵映射到某个整数值?

时间:2017-03-12 04:21:09

标签: c++ dictionary matrix

例如,我想映射

       1  2  3
       3  4  1 -> 0
       1  1  1 

       1  2  3
       1  1  2 -> 1
       1  1  1 

等等。是否可以使用std :: map?

编辑:我的意思是问我是否有二维数组或一维向量数组,如何用一些整数值映射它。

2 个答案:

答案 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;在这里一般意义上讲。您有几种选择:

  1. 您可以使用函数动态计算映射。

  2. 您可以将映射存储在std::map

  3. 如果在每个矩阵上重复执行计算,则选项2将使用内存来节省CPU周期。如果不经常执行计算,选项1将使用更少的内存但CPU周期更多。您应该实现这两个并分析您的代码以衡量确切的权衡。