for (i = 0; i < t; i++)
{
values.clear();
scanf("%d %d %d", &values[0], &values[1], &values[2]);
printf("%d %d %d\n", values[0], values[1], values[2]);
sort(values.begin(), values.end());
printf("%d %d %d\n", values[0], values[1], values[2]);
printf("Case %d: %d\n", i + 1, values[1]);
}
私はその小さなスニペットを持っています。「120015001800」と入力すると、中間値である1500が表示されるはずです。ただし、最小値である1200が出力されます。
私がやっていることは、STLのsort()を使用してベクトルをソートしてから、中間値であるvalues[1]を出力することです。
ただし、sort()はまったく機能していないようです。前後に出力されるベクトルは、同じものです。
私は自分のベクトルを次のように宣言します:
vector<int> values (3);
私はそれをで宣言しようとしましたvector<int> values;
そしてそれからpush_back(0)
3回そしてそれをしました。
しかし、なぜそれが最初の方法で機能しないのか疑問に思います。