2011-10-27 8 views
2

カントのアクセス、

その後、私が作成地図データのベクトル、および

vector<map<unsigned short int,col_data> > * buffer_vector = new vector<map<unsigned short int,col_data> >; 
buffer_vectorS.push_back(buffer_vector); 
buffer_current = buffer_vector; 

その後、私は

、データ・ストアを取得するためにbuffer_currentのマップ要素を使用したいと思い、そのポインタを保存
buffer_current_map = &buffer_current[index]; 

しかし、この最後のコンパイルは....私はそれを書く方法はわかりません... buffer_currentの項目にアクセスするにはどうすればよいですか? 私を助けることができますか?

+0

なぜ参照演算子( '&')が必要ですか? – cnicutar

答えて

1

あなたが意味するか:

buffer_current_map = (*buffer_vector)[index]; 

がしかし注意して、地図上のコピー操作を実行すること。

map<unsigned short int,col_data> *buffer_current_map; 
buffer_current_map = &(*buffer_vector)[index]; 

次に、コピーは実行されません。ポインタセマンティクスを使用してマップにアクセスすることができます。しかし、ベクター上でサイズ変更が行われると、ポインタが無効になることがあります。

+0

ありがとう – tonnot