私はgppとmicrosoftコンパイラの両方を使ってこのコードを実行しますが、どちらの場合でも例外があります。 しかし、私はその理由を理解できません! これは私のコードです:なぜstd :: mapが例外をスローしますか?
#include <iostream>
#include <map>
using namespace std;
map<int,int> fib;
int fibo(int i)
{
if (!fib.count(i))
{
fib.insert(pair<int, int>(i,fibo(i-1)+fibo(i-2)));
}
return fib[i];
}
int r(int i)
{
if(i<3)
{
return i;
}
else
{
return fibo(i)+r(i-2);
}
}
int main()
{
fib.insert(pair<int, int>(0,1));
fib.insert(pair<int, int>(1,1));
int a,b,n;
cin>>a>>b;
n=b-a;
int fiba=fibo(a);
int fibaa=fibo(a-1);
cout << (r(n+1)*fiba)+(r(n)*fibaa);
return 0;
}
誰でも助けてくれますか?
このコードをデバッグしたところ、fib.insert(pair<int, int>(i,fibo(i-1)+fibo(i-2)));
は機能しません。
例外とはどこですか? – Fox32
デバッグしようとしませんでしたか? – vulkanino
入力は? –