即時通訊新的c + +我很難理解一些向量行爲。 我試圖實現一個函數返回一個int數組,我發現很多建議使用這樣的載體:棧std ::向量範圍
vector<int> myFunc()
{
vector<int> myVector;
//add elements to vector here...
return myVector;
}
但是從我知道「myVector」是在棧上創建一個對象,所以當函數結束時它不會超出範圍嗎?什麼時候它的析構函數被調用? 我知道還有其他一些關於返回矢量的問題,但我需要澄清這個特定的問題,希望不會有重複的問題。
它被複制/移動(或優化出)。它返回可能導致問題的本地對象的地址或引用。 – chris
關於這個問題,有很多關於SO的問題。你可能會發現它們([sample](http://stackoverflow.com/questions/12604431/returning-an-stl-vector-from-a-function-copy-cost))的啓發。 – WhozCraig