选择最佳整数集的数据结构和设计

时间:2017-09-18 14:07:22

标签: c++ c++11 c++14

我需要实现一种算法,从预定义的可能性中选择最佳三元组(三个整数组)。详情:

  1. 有一个枚举类定义如下:

    enum class myEnum { a6 = 0, a10, a14, a18, a119, a123, a127, a131, a135 }

  2. 这些成员可以组合成三元组 {a6,a10,a14}, {a6, a14, a18}。只有11个可能的三元组(因为条件在这里不重要)。 我必须选择三元组,对每个三元组成员进行一些计算,并考虑其他条件选择最佳三元组。

    哪些数据结构和设计最适合这11个三元组?一个三元组正在使用'因此应该从计算中排除,或者可以对每个三元组进行计算,然后将其从结果中排除(无关紧要):

    struct a6 { int value; };

    typeToChoose possibleTriples = {
    
    {
        a6, a10, a14
        a6, a10, a18
        a6, a14, a18
        a10, a14, a18    
        a119, a123, a127
        a119, a123, a131
        a119, a127, a131
        a123, a127, a131
        a123, a127, a135
        a123, a131, a135
        a127, a131, a135
    }
    

    让我们说{a6, a10, a14}正在使用中。现在我必须迭代 possibleTriples计算结构字段value的总和: int sumOfValues = a6.value + a10.value + a18.value;

    并选择最低总和的最小三倍。 {a6,a10,a14} == {a14,a10,a6}

1 个答案:

答案 0 :(得分:1)

对此的回答只能与问题一样模糊。 通常,您从最基本的方法开始:

struct Triple {
   myEnum first, second, third;
};

现在,根据您想要实现的目标,您可以添加更多抽象,通过合并封装(私有成员),某个接口来操作表示,算法,重载运算符等,从而有效地将这样的结构推广到类。