2010-12-22 92 views
1

以下情況:我有一個包含一些常量值的數組,它們表示範圍。
甲範圍總是兩個值之間的陣列中,例如:10 - 20 =範圍1
20-30 =範圍2等...如何使用數組表設置配置參數?

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

與搜索功能,我搜索的號碼(val)在arr []中的範圍之間,並返回找到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; 
} 

OK,這工作了那麼遠,

現在以下問題: 我有一些參數讓我們稱它們爲簡單整數的x,y,z,它們取決於val的值。 x,y,z的參數值我在編譯之前已經知道,當然它們對於每個範圍都是不同的。
如何使用範圍索引設置x,y和z? 我怎樣才能使用x,y,z的常量參數值來創建數組,並根據返回的範圍索引設置它們?或者它應該是一個結構? 那將是怎樣的......?

THX

+0

到目前爲止,我從問題陳述中得出的結論是,您最初將獲得x,y,z變量的某些值(取決於val),並基於返回的索引再次設置x,y的值,z值。如果我的理解不正確,請告訴我。 – mukeshkumar 2010-12-22 10:44:02

+0

你的確理解我的問題。你寫的正是我想要的。 – arge 2010-12-22 19:51:53

回答

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]