什麼是在下面的程序的問題,爲什麼我不能夠以班級爲重點我怎樣才能插入關鍵在地圖STL在C++類
#include <iostream>
#include <map>
#include <utility>
using namespace std;
class User
{
int value_1;
int value_2;
public:
User(int num_1, int num_2)
{
value_1 = num_1;
value_2 = num_2;
}
int getId(){
return value_1;
}
int getUid(){
return value_2;
}
bool operator< (const User& userObj) const
{
if(userObj.value_1 < this->value_1)
return true;
}
};
int main()
{
std::map<User, int> m_UserInfoMap;
m_UserInfoMap.insert(std::make_pair<User, int>(User(1,2), 100));
m_UserInfoMap.insert(std::make_pair<User, int>(User(3,4), 120));
m_UserInfoMap.insert(std::make_pair<User, int>(User(5,6), 300));
std::map<User, int>::iterator it = m_UserInfoMap.begin();
for(; it != m_UserInfoMap.end(); it++)
{
std::cout<<it->first.getId()<<" :: "<<it->second<<std::endl;
}
return 0;
}
初始化地圖在上面的程序,如果我嘗試將密鑰添加爲錯誤的類。 請告訴不同的方式來初始化地圖。
如果我嘗試初始化地圖像: m_UserInfoMap [a] = 1;它工作正常」 但如果 的std ::地圖 m_UserInfoMap =(A,1);或 的std ::地圖 m_UserInfoMap(A,1); 它不工作,所以什麼與以上陳述撥錯 –
?我們不打算再次編譯你的編譯器的工作*。發佈錯誤 – nvoigt
提高你的警告級別你有一個微不足道的錯誤:一個非void函數*總是*必須返回一些東西 – juanchopanza