如何使用数组表设置配置参数?

时间:2010-12-22 10:12:42

标签: c++

以下情况:我有一个带有一些常量值的数组,它们代表范围 范围总是在数组中的两个值之间,例如:10 - 20 = range1
20-30 =范围2等等......

const int arr[] = {10, 20, 30, 40, 50, 60};

使用搜索功能,我在arr []中搜索这些范围之间的数字(val),并返回找到val的范围索引。
例如:如果val = 15→返回值将为1
             如果val = 33→返回值将为3

int Search(const int arr[], int n, int val)
{
    int i = 0;

    while (i < n) {
        if (val > arr[i])
            ++i;
        else
            return i;
    }
    return -1;
}

好的,到目前为止... ...

现在出现以下问题: 我有一些参数让我们称它们为x,y,z,它们是简单的整数,它们取决于val的值。 x,y,z的参数值在编译之前就已经知道了,当然它们对于每个范围都是不同的 我现在如何使用范围索引设置x,y和z? 如何使用x,y,z的常量参数值创建一个数组,并根据返回的范围索引设置它们?或者它应该是一个结构? 那怎么样......?

THX

1 个答案:

答案 0 :(得分:0)

您可以在struct

中保存每个范围的参数
struct range_parameters {
    int x;
    int y;
    // etc
}

并将所有这些结构保存在std::vector

std::vector<range_parameters> params;

添加数据将如下所示:

range_parameters params_for_range_1;
params_for_range_1.x = 1;
params_for_range_1.y = 2;

params[0] = params_for_range_1;

最后,您可以将范围n的参数作为params[n-1]访问。