如何从map c ++中检索值

时间:2014-07-02 20:47:14

标签: c++ map

我有map<string, inode_ptr> directories 我想检索与某个键相关联的值。 所以我这样做了:inode_ptr i = directories.find("string"); 但它返回字符串键,我该怎么办?

2 个答案:

答案 0 :(得分:3)

使用以下方法

inode_ptr i = NULL;

auto it = directories.find("string");

if ( it != directories.end() ) i = it->second;

编写

可能更好
inode_ptr i = {};

而不是

inode_ptr i = NULL;

答案 1 :(得分:1)

放手一搏:

inode_ptr myInode = NULL;    

map<string, inode_ptr>::iterator i = directories.find("string"); 
if ( i != directories.end() )
{
  myInode = i->second;
}
else
{
  cerr << "no 'String' in the map, I should be "
       << "sure to check for null before using myInode" << endl;
}

以下是上述评论中引用的精细手册的链接:

http://www.cplusplus.com/reference/map/map/find/