簡體   English   中英

如何在C ++中將浮點值插入到映射中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM