コード[GCC、-O2フラグでコンパイル]
int main()
{
vector< vector<int> > matrixa(8);
int ff = 5;
int s = pow(ff, matrixa.size());
int ss = pow(double(ff), int(matrixa.size()));
vector< vector<int> > comb(s);
cout << ff << "^" << matrixa.size() << " = " << s << endl;
cout << ss << endl;
return 0;
}
出力
5^8 = 390624
390625
なぜs = 390624
それがいつなのか疑問に思います390625
。-O2フラグなしでコードをコンパイルすると、s = 390625
。また、のキャストss
は問題を修正しているようです。
どうしたの?
私のOSはWindows7Ultimatex64です。GCCのバージョンについてはよくわかりませんが、Code ::Blocks10.05が付属しています。