【发布时间】:2016-02-17 13:26:46
【问题描述】:
我有以下代码:
int main()
{
int intArr[] = { 1,5,3 };
//auto f = [](auto a, auto b) {return a < b;};
//std::sort(intArr, intArr + 2, f);
std::sort(intArr, intArr + 2);
for (int& temp : intArr)
cout << temp << endl;
}
但是,输出未排序(例如,输出为1 5 3)。将 std::sort 与 lambda 一起使用时的结果相同。是什么导致了这种行为?
我正在使用 Visual C++ 编译器 (Visual Studio 2015)。
【问题讨论】:
-
std::sort(intArr, intArr + 3); -
您只对前两个元素进行排序。
-
为什么有这么多反对票?我相信这是一个不错的问题。
-
这可能不是一个花哨的问题,也不会进入名人堂,也不会为回答者带来很大的声望,但它是一个有效且公式化的问题题;因此没有理由拒绝它。
标签: c++ arrays sorting c++11 visual-c++