[英]How to insert float values in to a map in C++?
我需要將3個值插入類型為std::map<int,std::pair<float,float> >
。 這樣地圖上的數據將為{ 22 32626.23 53232.63
}
std::map<int,std::pair<float,float> > my_MainMap;
std::map<float,float> myMap1;
int iValue;
float fValue1, fValue2;
我嘗試了3種不同的方法來插入值:方法1:
myMap1.insert(std::pair<float, float>(fValue1, fValue2));
m_Mainmap.insert(std::pair<int,std::pair<float,float> >(iValue,myMap1 ));
方法2:
m_Mainmap.insert(std::pair<int,std::pair<float,float>>::value_type(iValue,fValue1, fValue2));
方法3:
myMap1.insert(std::pair<float, float>(fValue1, fValue2));
m_Mainmap.insert(std::make_pair(iValue,myMap1 ));
我編寫的代碼未編譯。 我哪里錯了?
In constructor 'std::pair<_T1, _T2>::pair(const std::pair<_U1, _U2>&) [with _U1 = int, _U2 = std::map<float, float>, _T1 = const int, _T2 = std::pair<float, float>]':
error: no matching function for call to 'std::pair<float, float>::pair(const std::map<float, float>&)'
方法2即將出現。 您需要考慮已嵌套一對的事實。
m_Mainmap.insert(std::pair<int, std::pair<float,float>>(i, std::pair<float,float>(fOuterRadius,fInnerRadius)));
要么
m_Mainmap.insert(std::make_pair(i, std::make_pair(fOuterRadius,fInnerRadius)));
只要您知道insert函數和此運算符之間的區別,請考慮以下內容。 (如果鍵已經存在,則插入不會更新值)
m_Mainmap[i] = std::pair<float,float>(fOuterRadius,fInnerRadius);
我不知道您的std::map<float,float>
是干什么的,因為您從未在問題說明中詳述它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.