Sorting 排序比较函数中的下标运算符是什么意思? 结构对{ int优先; int秒; } 向量v; 排序(v.begin(),v.end(),[](对p1,对p2){返回p1.first
Sorting 排序比较函数中的下标运算符是什么意思? 结构对{ int优先; int秒; } 向量v; 排序(v.begin(),v.end(),[](对p1,对p2){返回p1.first,sorting,compare,subscript-operator,Sorting,Compare,Subscript Operator,[](对p1,对p2){return p1.first
[](对p1,对p2){return p1.first
在排序中是什么意思?函数指针还是其他什么?我想不出要搜索的关键字。这是一个,下标运算符就是引入它的。Lambda表达式是在C++11中引入的
上面链接的MSDN文章对lambda表达式的定义如下:
是一种在调用匿名函数对象或将其作为参数传递给函数的位置定义匿名函数对象的方便方法
这是一个lambda表达式。见下例:
struct pair{
int first;
int second;
}
vector<pair> v;
sort(v.begin(), v.end(), [](pair p1, pair p2){return p1.first < p2.first});
void abssort(浮点*x,无符号n){
标准::排序(x,x+n,
//Lambda表达式开始
[](浮动a、浮动b){
返回(标准::abs(a)<标准::abs(b));
}//lambda表达式的结尾
);
}
void abssort(float* x, unsigned n) {
std::sort(x, x + n,
// Lambda expression begins
[](float a, float b) {
return (std::abs(a) < std::abs(b));
} // end of lambda expression
);
}