我正在寻找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
排序。
是否有一些具有类似功能的免费容器?
答案 0 :(得分:2)
对于STL,你可以制作一个关键是一对的地图:
std::map< std::pair<int, int>, std::string > container;
您可能仍然可以将该对用于Qt容器,但是您的界面不会与您建议的完全相同。