1

我正在寻找类似QMultiMapQt 库的东西,但有两个键。

我希望能够做这些事情:

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

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

4

1 回答 1

2

对于 STL,您可以制作一个键为一对的映射:

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

您可能仍然可以将这对用于 Qt 容器,尽管您不会拥有与您建议的完全相同的界面。

于 2013-05-08T17:04:36.277 回答