c++でベクトルクラスを学ぼうとしています。そのために、配列からベクトル形式に変換しようとしています。
配列形式で
int find_recursively(int *a, int low, int high) {
int mid = (low+high)/2;
if(....)
return find_recursively(a,low,mid+1);
else if(...)
return find_recursively(a,mid+1,high);
}
ベクトル形式への変換は次のようになります。
int find_recursively(vector<int> a) {
int low = 0;
int high = a.size() - 1;
int mid = (low + high) / 2;
if(....) {
vector<int> temp ( a.begin(), a.begin() + mid-2 );
return find_recursively(temp);
}
else if(...) {
vector<int> temp (a.begin()+mid+1, a.begin()+high);
return find_recursively(temp);
}
}
私はそれをテストし、力を直接与えます。問題は境界線にあると思います。ベクトルの境界線のロジックがわかりません。前もって感謝します