我正在尝试在 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);
}
}
我测试了它,并直接给力关闭。我认为问题出在边界上,我没有得到向量中边界的逻辑。提前致谢