1

double のベクトルがあり、その中で最大値を取得し、その値を整数変数に格納して、値を比較できるようにする必要があります。私はこれまでのところこれを持っています:

vector<double>::iterator result;

result = max_element(zerocrossdata.begin(), zerocrossdata.end());

変数内に値を配置するにはどうすればよいですか?

4

2 に答える 2

9

このstd::max_element()関数は、ベクター内の最大要素を指す反復子を返します。

したがって、実際の最大値を取得するには、返されたイテレータを次のように逆参照する必要があります。

double max_value = *result;
于 2012-11-13T15:37:05.827 に答える
3

他の人がすでに述べているように、 * 演算子を使用してイテレータを参照する必要があります。

int max_value = *result;

ただし、この操作の結果はint ではなくdoubleになることに注意してください。ほとんどすべてのプラットフォームで、double は 8 バイトの浮動小数点値になります。結果は、int (通常は符号付き 4 バイト整数) がサポートできる値の範囲外になる可能性があります。これにより、予期しない動作が発生する可能性があり、コンパイラと設定によっては、コンパイラの警告が表示される (または表示されない) 場合があります。

于 2012-11-13T15:58:02.567 に答える