2012-04-19 66 views
2

有人能告诉我的代码来获得对哈希映射在C++中开始了下面的情况:哈希表在C(整型,字符串[])++

我想有一个(键,值)的映射(整型,字符串[])。

所以,我的地图应该有一个int键指向一个大小的字符串数组。我如何在C++中声明和使用哈希映射。

请帮我这个。在此先感谢

+5

'std :: unordered_map >' – ildjarn 2012-04-19 19:42:04

+0

或者'std :: tr1 :: array'代替'std :: vector'代替它的值。 – 2012-04-19 19:43:01

回答

3

您可以使用std::vector S的std::string std::map std::unordered_map,但unordered_multimap呈现在C++是更好的选择。它允许您为同一个键存储多个项目,而无需在每个映射条目中管理向量。

下面是一个使用地图的一个示例:

using namespace std; 

int main(int argc, const char* argv[]) { 
    unordered_map<int,vector<string>> mvs; 
    vector<string> items1; 
    items1.push_back("hello"); 
    items1.push_back("world"); 
    vector<string> items2; 
    items2.push_back("quick"); 
    items2.push_back("brown"); 
    items2.push_back("fox"); 
    mvs[1] = items1; 
    mvs[200] = items2; 
    mvs[4].push_back("another_one"); 
    for(unordered_map<int,vector<string>>::const_iterator iter = mvs.begin() ; iter != mvs.end() ; iter++) { 
     cout << iter->first << ":"; 
     for (vector<string>::const_iterator jter = iter->second.begin() ; jter != iter->second.end() ; jter++) { 
      cout << *jter << " "; 
     } 
     cout << endl; 
    } 
    return 0; 
} 

编辑,以提哈希映射。

+1

这些都不是哈希映射 – juanchopanza 2012-04-19 19:44:57

+0

@juanchopanza糟糕,我错过了问题的“哈希映射”部分。我不是100%肯定它是必不可少的,你可以:像这样的嵌套结构经常用在类库缺少multimaps的语言中。 – dasblinkenlight 2012-04-19 19:47:06

+0

还有一个'std :: unordered_multimap' – bames53 2012-04-19 19:55:32