=aBegin){ 平均积分=(阿贝金+aEnd)/2; if(aSortedList[avg].getMedallionNumber()==aKey){ 返回平均值; } 如果(aSortedList[avg].getMedallionNumber()>aKey){ 返回二进制搜索(aSortedList、aKey、aBegin、avg-1); } 返回二进制搜索(aSortedList、aKey、avg+1、aEnd); } 返回-1; } 无效打印匹配驱动程序(常量数组和AmaHattanMedallions、常量数组和aMatchedDrivers) { int size=amatchedrivers.getSize(); 对于(inti=0;i,c++,arrays,memory,memory-leaks,binary-search-tree,C++,Arrays,Memory,Memory Leaks,Binary Search Tree" /> =aBegin){ 平均积分=(阿贝金+aEnd)/2; if(aSortedList[avg].getMedallionNumber()==aKey){ 返回平均值; } 如果(aSortedList[avg].getMedallionNumber()>aKey){ 返回二进制搜索(aSortedList、aKey、aBegin、avg-1); } 返回二进制搜索(aSortedList、aKey、avg+1、aEnd); } 返回-1; } 无效打印匹配驱动程序(常量数组和AmaHattanMedallions、常量数组和aMatchedDrivers) { int size=amatchedrivers.getSize(); 对于(inti=0;i,c++,arrays,memory,memory-leaks,binary-search-tree,C++,Arrays,Memory,Memory Leaks,Binary Search Tree" />

c+中的内存错误+;二进制搜索算法“***”`./Drivers';中出现错误:free():无效的下一个大小(正常):0x00000000016c2d0***”; 我的代码在我的C++内存错误中工作,但是尽管它工作了,但是我仍然得到了' *错误在`//驱动器中:For():无效的下一个大小(正常):0x000,000,166C2D0*“错误”,同时伴随着后面的跟踪和内存映射。所以我只是想知道为什么会出现这样的问题。 这是我的密码: int binarySearch(const Array<NYCTaxiDriver>& aSortedList, unsigned int aKey, int aBegin, int aEnd ) { if(aEnd >= aBegin){ int avg = (aBegin+aEnd)/2; if(aSortedList[avg].getMedallionNumber() == aKey){ return avg; } if(aSortedList[avg].getMedallionNumber()>aKey){ return binarySearch(aSortedList,aKey, aBegin, avg-1); } return binarySearch(aSortedList,aKey, avg+1, aEnd); } return -1; } void printTheMatchingDrivers(const Array<unsigned int>& aManhattanMedallions,const Array<NYCTaxiDriver>& aMatchedDrivers) { int size = aMatchedDrivers.getSize(); for(int i=0;i<aManhattanMedallions.getSize()-1;i++){ int resultPos = binarySearch(aMatchedDrivers,aManhattanMedallions[i],0,size); if(resultPos != -1){ cout<<"Match "<<1<< ":"<<"\n"<<aMatchedDrivers[resultPos].getMedallionNumber()<<": "<<aMatchedDrivers[resultPos].getLastName()<<", "<<aMatchedDrivers[resultPos].getFirstName()<<endl; } } } int main(){ Array<unsigned int> manhattanMedallions; Array<NYCTaxiDriver> matchedDrivers;// already sorted printTheMatchingDrivers(manhattanMedallions, matchedDrivers); return 0; } int二进制搜索(常量数组和aSortedList, 未签名的int-aKey, 内特阿贝金, 国际航空公司 ) { 如果(aEnd>=aBegin){ 平均积分=(阿贝金+aEnd)/2; if(aSortedList[avg].getMedallionNumber()==aKey){ 返回平均值; } 如果(aSortedList[avg].getMedallionNumber()>aKey){ 返回二进制搜索(aSortedList、aKey、aBegin、avg-1); } 返回二进制搜索(aSortedList、aKey、avg+1、aEnd); } 返回-1; } 无效打印匹配驱动程序(常量数组和AmaHattanMedallions、常量数组和aMatchedDrivers) { int size=amatchedrivers.getSize(); 对于(inti=0;i

c+中的内存错误+;二进制搜索算法“***”`./Drivers';中出现错误:free():无效的下一个大小(正常):0x00000000016c2d0***”; 我的代码在我的C++内存错误中工作,但是尽管它工作了,但是我仍然得到了' *错误在`//驱动器中:For():无效的下一个大小(正常):0x000,000,166C2D0*“错误”,同时伴随着后面的跟踪和内存映射。所以我只是想知道为什么会出现这样的问题。 这是我的密码: int binarySearch(const Array<NYCTaxiDriver>& aSortedList, unsigned int aKey, int aBegin, int aEnd ) { if(aEnd >= aBegin){ int avg = (aBegin+aEnd)/2; if(aSortedList[avg].getMedallionNumber() == aKey){ return avg; } if(aSortedList[avg].getMedallionNumber()>aKey){ return binarySearch(aSortedList,aKey, aBegin, avg-1); } return binarySearch(aSortedList,aKey, avg+1, aEnd); } return -1; } void printTheMatchingDrivers(const Array<unsigned int>& aManhattanMedallions,const Array<NYCTaxiDriver>& aMatchedDrivers) { int size = aMatchedDrivers.getSize(); for(int i=0;i<aManhattanMedallions.getSize()-1;i++){ int resultPos = binarySearch(aMatchedDrivers,aManhattanMedallions[i],0,size); if(resultPos != -1){ cout<<"Match "<<1<< ":"<<"\n"<<aMatchedDrivers[resultPos].getMedallionNumber()<<": "<<aMatchedDrivers[resultPos].getLastName()<<", "<<aMatchedDrivers[resultPos].getFirstName()<<endl; } } } int main(){ Array<unsigned int> manhattanMedallions; Array<NYCTaxiDriver> matchedDrivers;// already sorted printTheMatchingDrivers(manhattanMedallions, matchedDrivers); return 0; } int二进制搜索(常量数组和aSortedList, 未签名的int-aKey, 内特阿贝金, 国际航空公司 ) { 如果(aEnd>=aBegin){ 平均积分=(阿贝金+aEnd)/2; if(aSortedList[avg].getMedallionNumber()==aKey){ 返回平均值; } 如果(aSortedList[avg].getMedallionNumber()>aKey){ 返回二进制搜索(aSortedList、aKey、aBegin、avg-1); } 返回二进制搜索(aSortedList、aKey、avg+1、aEnd); } 返回-1; } 无效打印匹配驱动程序(常量数组和AmaHattanMedallions、常量数组和aMatchedDrivers) { int size=amatchedrivers.getSize(); 对于(inti=0;i,c++,arrays,memory,memory-leaks,binary-search-tree,C++,Arrays,Memory,Memory Leaks,Binary Search Tree,而言,问题似乎在容器类数组中

而言,问题似乎在容器类数组中