double のベクトルがあり、その中で最大値を取得し、その値を整数変数に格納して、値を比較できるようにする必要があります。私はこれまでのところこれを持っています:
vector<double>::iterator result;
result = max_element(zerocrossdata.begin(), zerocrossdata.end());
変数内に値を配置するにはどうすればよいですか?
このstd::max_element()
関数は、ベクター内の最大要素を指す反復子を返します。
したがって、実際の最大値を取得するには、返されたイテレータを次のように逆参照する必要があります。
double max_value = *result;
他の人がすでに述べているように、 * 演算子を使用してイテレータを参照する必要があります。
int max_value = *result;
ただし、この操作の結果はint ではなくdoubleになることに注意してください。ほとんどすべてのプラットフォームで、double は 8 バイトの浮動小数点値になります。結果は、int (通常は符号付き 4 バイト整数) がサポートできる値の範囲外になる可能性があります。これにより、予期しない動作が発生する可能性があり、コンパイラと設定によっては、コンパイラの警告が表示される (または表示されない) 場合があります。