<分区>
我想用STL排序算法对一些数进行排序,但又想记住它们的初始位置。 我有这样的数据结构:
struct Numbers {
int position;
int value;
};
我创建了一个这样的数字 vector :
vector<Numbers> a;
如何使用STL排序算法,根据值对数据结构进行排序?
<分区>
我想用STL排序算法对一些数进行排序,但又想记住它们的初始位置。 我有这样的数据结构:
struct Numbers {
int position;
int value;
};
我创建了一个这样的数字 vector :
vector<Numbers> a;
如何使用STL排序算法,根据值对数据结构进行排序?
最佳答案
你也可以使用仿函数:
struct comp {
bool operator()(const Numbers &lhs, const Numbers& rhs) const{
lhs.value < rhs.value;
}
};
std::sort(a.begin(),a.end(), comp());
在 C++11 中,您可以使用 lambda 函数:
std::sort( a.begin() , a.end() ,
[](const Numbers& lhs , const Numbers& rhs)
{ return lhs.value < rhs.value; }
);
关于数据结构的 C++ 排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620832/