我想存儲指針的雙端隊列,看起來像這樣:C++如何存儲在雙端隊列元素而不復制
deque<ofImage *> pointerDeque;
void testApp::iTakeAPointer(ofImage * &pointer) {
cout << "iTakeAPointer " << &pointer << endl;
pointerDeque.push_back(pointer);
cout << "pointerDeque.back() " << pointerDeque.back() << endl;
}
當我運行它,我得到(函數被調用的按鍵) :
keyPressed 0xbffff240
iTakeAPointer 0xbffff240
pointerDeque.back() 0x9f2e08
因爲deque.push_back()創建一個副本。我的問題是:我如何在deque中獲得引用(在本例中爲0xbffff240)?
編輯:
謝謝。有時你看不到樹木。
謝謝。圖像實例在其整個生命週期中都存在。無論如何,我會研究std :: shared_ptr。 – ilsa 2012-07-12 08:23:23