是否有按主键和辅助键排序的容器?

时间:2013-05-08 16:59:49

标签: c++ qt

我正在寻找Qt库中QMultiMap之类的东西,但有两把钥匙。

我希望能够做到这些:

template<TPrimaryKey, TSecondaryKey, TItem>
class Container;
...
Container<int, int, std::string> container;
container.insert(2, 2, "pear");
container.insert(1, 1, "apple");
container.insert(1, 2, "orange");
for (auto it = container.begin(); it != container.end(); ++it)
    std::cout << *it << std::endl;

,输出结果为:

apple
orange
pear

这是根据TPrimaryKey排序的项目,当有更多具有相同TPrimaryKey的项目时,它们将按TSecondaryKey排序。

是否有一些具有类似功能的免费容器?

1 个答案:

答案 0 :(得分:2)

对于STL,你可以制作一个关键是一对的地图:

std::map< std::pair<int, int>, std::string > container;

您可能仍然可以将该对用于Qt容器,但是您的界面不会与您建议的完全相同。