• ベストアンサー

多次元map

C++です。 1. 多次元mapというのはどのように実装すればよいのでしょうか?たとえば、 data[0.1][3.9]=1 といったデータの取り扱いです。 2. 1.が無理なのであれば、mapで格納されているデータ(たとえばdata[3.9]=1)を vectorに格納するにはどのようにしたらよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.1

ただのmapは実装できるのですね? それなら、mapのmapにするか、 2つの値のペアをmapのkeyにするなどが思いつきます。 参考までにSTLのstd::mapを使った例を以下に書いておきます。 -------------------------------------------------- #include <iostream> #include <map> using namespace std; int main(){  /** mapのmap **/  map<double, map<double, int> > data;  //入力  data[0.1][3.9] = 1;  data[0.2][4.8] = 3;  //出力  cout << data[0.1][3.9] << endl;  cout << data[0.2][4.8] << endl;  /** keyがpairのmap **/  map<pair<double, double>, int> data2;  //入力  data2[pair<double, double>(0.1, 3.9)] = 1;  data2[pair<double, double>(0.2, 4.8)] = 3;  //出力  cout << data2[pair<double, double>(0.1, 3.9)] << endl;  cout << data2[pair<double, double>(0.2, 4.8)] << endl;  return 0; }

noname#108554
質問者

お礼

ありがとうございます。