① sort 和 stable_sort的区别,带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。
②使用auto来定义iterator,可以方便以后如果修改容器代码改变的少。
③lambda表达式在STL中的使用。
代码:
class Point {
public:
int _x;
int _y;
public:
Point(int x,int y);
};
int main()
{
vector<Point> vt;
vt.push_back(Point(1,3));
vt.push_back(Point(2,4));
vt.push_back(Point(3, 0));
vt.push_back(Point(1,2));
//stable_sort(vt.begin(), vt.end(), less<int>());
stable_sort(vt.begin(), vt.end(), [](const Point& pt1, const Point& pt2){
return (pt1._x + pt1._y > pt2._x + pt2._y);});
for (auto i = vt.begin(); i != vt.end(); ++ i) {
cout<< "("<<i->_x<<","<<i->_y<<")" <<endl;
}
return 0;
}
Point::Point(int x,int y)
{
this->_x = x;
this->_y = y;
}