【发布时间】:2018-02-21 05:35:43
【问题描述】:
它不一定是 QHash;只是一个现有的数据结构(理想情况下在 Qt 中),它干净地完成了该任务,而不被认为是一个深奥的解决方案,因为我需要这段代码非常短(以适合一张小扑克牌)并且易于理解。向量、多重哈希、列表、地图或任何东西都是受欢迎的,只要它被认为是好的做法。
基本上,我有一个类,它有一个与之关联的整数值。例如:
class Flowers {
public:
const int m_Cost;
Flowers(int cost) { m_Cost = cost; }
}
Flowers roses{5};
Flowers violets{7};
Flowers tulips{9};
Flowers posies{3};
/* Place them in some sort of datastructure. */
flowerDataStructure[4]; // Returns Posies
flowerDataStructure[7]; // Returns Violets, Roses, Posies
flowerDataStructure[roses.m_Cost]; // Returns Roses, Posies
他们可能支持一个范围,例如,
flowerDataStructure[5 ... 11]; // Returns Roses, Violets, Tulips
PS:int m_Cost; 不一定是const。我只是假设它会更容易。
谢谢。
【问题讨论】:
-
std::map<int, Flowers>可以工作,或者std::set<Flowers>如果Flowers具有按m_Cost排序的适当比较函数。 -
将它们放入一个向量中,对它们进行排序,找到指向最后一个元素的迭代器
itm_Cost <= 10然后您要查找的元素是begin直到it。 -
btw ...“适合小扑克牌”的要求是什么?我可以选择字体大小吗?
-
@tobi303 哈哈,我正在研究一个纸牌游戏概念(谁知道我是否会成功?),它通过以代码格式编写指令来教人们如何阅读代码。 i.imgur.com/1Wx0mcA.jpg
-
@Akiva 很酷的东西。祝你好运。
标签: c++ qt data-structures range key-value