-2
我有一個問題,我有一個map
我想存儲數據。我添加一對映射,但是當我嘗試獲取它 - 它的數據不存儲。我的代碼:C++地圖不適合我
typedef std::map<unsigned long, int> SocketsTableType;
SocketsTableType ClientTable;
inline void AddClient(unsigned long id, int fd)
{
ClientTable.insert(std::pair<unsigned long, int>(id, fd));
}
inline int GetDescriptorByClient(unsigned long id)
{
SocketsTableType::const_iterator it;
for (it = ClientTable.begin(); it != ClientTable.end(); ++it)
{
if (it->first == id)
{
return it->second;
}
}
return 0;
}
int main()
{
AddClient(223322, 12);
int fd = GetDescriptorByClient(223322);
if(fd >= 0)
{
// NEVER HERE
}
}
我的代碼出了什麼問題?
謝謝!
您的代碼無效。根本沒有函數addClient,那是如何編譯的?或者..做到了? – 2012-06-03 20:55:32
如果您將'addClient'的調用替換爲'AddClient',則它適用於我。 –
如果您確定在兩個地方都使用了「AddClient」或「addClient」,則代碼工作正常。但'std :: map'有一個'find'方法,這就是你應該使用的。這是更高效的方式。 – juanchopanza