2013-02-27 84 views
0

假设我创建了一个多重映射为访问多重映射值

std::multimap<int, string> mm; 
mm[1] = "name1"; 
mm[1] = "name2"; 

mm[2] = "name3" 
mm[2] = "name4" 

在这里,我相信每个键有两个值,作为名1是第一位为毫米[1]和NAME的价值排序是非常重要的次之为毫米[1]。

任何人都可以请建议的方式来访问毫米值,如毫米[1] {第一值},而不使用计数在这里。

回答

1
auto range = mm.equal_range(1); 
std::for_each(range.first, range.second, 
[](const std::pair<const int, std::string>& p) 
{ 
    std::cout << p.second << std::endl; 
}); 

只是修正:multimap没有operator []。改为使用insert

+0

range.first和range.second是按照随机顺序还是以相同顺序插入? – dearvivekkumar 2013-02-27 07:30:17

+0

@dearvivekkumar插入我想。标准中没有关于它的内容。 – ForEveR 2013-02-27 07:37:02

+0

谢谢 但我仍然不能依靠这个。 我认为我应该创建std :: map > – dearvivekkumar 2013-02-27 07:59:19