我有一個std::map<std::string, std::vector<MyClass>>
類型的地圖。這張地圖以這種方式填充,我創建了一個矢量,並將它作爲一對導入到地圖中。然後我想調用一個函數,給剛插入的矢量,並讓它填充矢量。它看起來像:C++通過STL容器項目作爲參考
{
std::string guid = "aGUID"
std::vector<MyClass> vec_myClass(0);
my_map[guid] = vec_myClass;
std::vector<MyClass>& vec_ref = my_map[guid];
FillVector(vec_ref);
}
FillVector(std::vector<MyClass>& vec) { vec.push_back(...); }
我認爲[]操作返回my_map
一個項目的參考,這是我可以給一個函數與它的工作,但在這一點上我的應用程序崩潰。我首先將矢量放入地圖(當它是空的時候),因爲我想避免複製工作,因爲函數FillVector將大量項目放入矢量中。我的錯誤在哪裏?通過引用傳遞參考可能會錯誤嗎?或者有更好的解決方案嗎?我比這裏更喜歡指針的引用。 Thx,並且一切順利。
人們可以嘗試編譯和運行自己的小型測試用例將是理想的,因爲問題可能出現在我們無法看到的代碼部分。 – PlasmaHH
周圍的代碼非常龐大,很難提取測試用例。有沒有在線可能提供測試用例在c + +(如jsFiddle)? – Michbeckable
您的意思是likie ideone.com和liveworkspace.org? – PlasmaHH