我写下面的代码
#include <vector>
#include <cmath>
#include <cfloat>
#include <iostream>
#include <algorithm>
using namespace std;
vector< vector<double> > merge_sort(vector< vector<double> >& source, vector< vector<double> >& result){
}
int main(){
vector < vector<double> >test;
vector < vector<double> >temp;
merge_sort(test, temp);
}
而且我的例外情况是,程序关闭了,我只是得到了错误的alloc exction,我不知道为什么,我甚至没有访问任何元素。
请告诉我如何解决它。
提前谢谢。答案 0 :(得分:7)
你的问题是你的函数有一个返回类型,但你没有返回任何东西。这为您提供了未定义的行为。见§6.6.3:
离开函数末尾相当于没有值的
return
;这会导致值返回函数中的未定义行为。
答案 1 :(得分:2)
正如我在评论中所说,因为你实际上并没有返回任何东西,所以你现在有了未定义的行为。最有可能在尝试清理堆栈时崩溃。