2012-01-09 11 views
0

私は問題が挿入がないのポインタを比較するためにhash_mapで、このような配列を維持することですが、私はこのコンテナの静的配列を保持することは可能ですか?

ようにしようとすると、配列

std::vector<int*> vector; 

しかし

std::vector<int[]> vector; 

上のポインタを保持していない意味

std::hash_map<std::vector<BYTE>,std::string> xxx 

エラーが発生しました。

+1

私はあなたの質問を理解するのに苦労しています。 'ベクトル'は 'ベクトル'とまったく同じものです。おそらく 'ベクトル'(Nはコンパイル時定数)を意味しましたか? – sepp2k

+1

C++のハッシュマップは 'unordered_map'と呼ばれ、これはうまく動作します:' std :: unordered_map 、std :: string> ' –

+1

' std :: unordered_map 、std :: string> 'も配列はおそらく静的サイズなので、可能性もあります。 – ildjarn

答えて

2

できませんstd::vector<int[]> vectorコンパイルするには配列のサイズをstd::vector<int[5]> vectorのように指定する必要があります。

しかし、これは、他の配列などに配列を割り当てることができないため、悪い考えです。ベクトルを使用しようとすると、さまざまなエラーが発生します。

代わりにvector<vector<int>> vectorを使用するか、C++ 11ではvector<std::array<int, 5>> vectorを使用してください。

また、私はhash_mapの実装があなたが使用しているかどうかわからないので、上記の解決策があなたのケースではうまくいくかどうかわかりません。 (また、C++ 11にはunordered_mapがあるので、これが望ましいかもしれません)

+0

C++ 11xとは何ですか?私はC++ 0xとC++ 11を知っています:) – bitmask

+0

@bitmask:ありがとうございます。 –

+0

私のベクターを別のベクターに入れますか? –

関連する問題