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]);
}
我有那个小片段。我输入“1200 1500 1800”,它应该给我中间值 - 1500。但是,它输出的是最小值 1200。
我所做的是使用 STL 的 sort() 对向量进行排序,然后打印 values[1],这是中间值。
但是, sort() 似乎根本不起作用,之前和之后的打印向量是一样的。
我声明我的向量:
vector<int> values (3);
我试图用vector<int> values;
然后push_back(0)
三遍和它来声明它。
不过,我想知道为什么它不能以第一种方式工作。