VC ++中等密钥的多图顺序

时间:2011-07-16 22:54:31

标签: c++ visual-c++ multimap

多重映射是否保留了相同键的插入顺序的问题已被多次询问,我认为很明显该标准表明它没有。 Although apparently C++0x for a while said it did and then didn't again?

无论如何,我需要一个可以通过键查找的结构,并按照相同键的插入顺序迭代它。这意味着我不能使用复合键,因为我怎么能用键查找?

那么,VC ++是否维护多重映射的相同键的插入顺序? (或者我会在哪里查找微软的实现,因为我找不到它?)如果它不是什么是最好的选择?升压::多指标?

如果我不是在没有位置的情况下插入总是首先查找所需位置,并将最后一个元素作为位置建议传递给相同的键(例如,使用equal_range的第二个迭代器),该怎么办?这可能工作(我只关心g ++和Windows编译器)我猜它可以与那个元素比较,然后下一个,然后开心并插入?或者它不能,因为树结构可能意味着它可能实际上不会为相同的键进行魔术叶切换,如果错误的孩子可以自由插入那里?

顺便说一句,我从不理解使用两种结构的答案。当然这会使删除相当昂贵吗?

2 个答案:

答案 0 :(得分:3)

std::map<std::vector<T> >满足您的所有要求。

答案 1 :(得分:0)

您可以使用复合键。只需使用lower_bound进行查找即可。 不确定这是否解决了你的主要问题。