多重映射是否保持相同键的插入顺序的问题已经被问了无数次,我认为很明显标准说不是这样的。Although apparently C++0x for a while said it did and then didn't again?
无论如何,我需要一个结构,在这个结构上我可以按键查找,并按相同键的插入顺序对其进行迭代。这意味着我不能使用组合键,那么我如何通过键来查找呢?
那么,对于多重贴图,VC++是否保持相同键的插入顺序?(或者我在哪里可以找到微软的实现,因为我找不到它?)如果不是,那么最好的替代方案是什么?boost::multiIndex?
如果我不是只插入没有位置的内容,而是总是首先查找所需的位置,并将相同键的最后一个元素作为位置建议传递(例如,使用equal_range的第二个迭代器),会怎么样?这可能会起作用(我只关心g++和Windows编译器),我猜是因为它可以与那个元素进行比较,然后下一步,然后快乐并插入?或者它不能,因为树结构可能意味着它实际上可能不会对相同的键进行魔法叶切换,并且如果错误的子键是自由的,则将其插入到那里?
顺便说一下,我从来没有理解过建议使用两种结构的答案。这肯定会让删除操作变得非常昂贵吧?
发布于 2011-07-17 07:27:11
您可以使用组合键。只需使用lower_bound进行查找。不过,我不确定这是否解决了您的主要问题。
https://stackoverflow.com/questions/6720780
复制相似问题