-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