2011-10-27 52 views
2

到我的私人部分我有:廣東話訪問指針矢量地圖元素,

vector< vector<map<unsigned short int,col_data> > *> buffer_vectorS; 
vector< map<unsigned short int,col_data> > * buffer_current; 
map<unsigned short int,col_data> buffer_current_map; 

(coldata是一種結構簡單:INT,INT,INT,雙)

後來我創建了一個地圖數據的載體,並保存其指針

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