描述:
对容器的前部分元素进行排序。
定义:
template< class RandomIt >
void partial_sort( RandomIt first, RandomIt middle, RandomIt last );
template< class RandomIt >
constexpr void partial_sort( RandomIt first, RandomIt middle, RandomIt last );
template< class RandomIt, class Compare >
void partial_sort( RandomIt first, RandomIt middle, RandomIt last,
Compare comp );
template< class RandomIt, class Compare >
constexpr void partial_sort( RandomIt first, RandomIt middle, RandomIt last,
Compare comp );
参数:
first, last - 定义范围的随机访问迭代器
middle - 定义要排序的末元素的随机访问迭代器
comp - 比较函数对象(即满足比较 (Compare) 概念的对象),若第一参数小于(即先序于)第二参数则返回 true 。
返回值:
无
示例:
#include <iostream>
#include <algorithm>
#include <string>
int main()
{
std::string s = "987654321";
std::partial_sort(s.begin(),s.begin()+5,s.end());
std::cout << s << std::endl;
//123459876
}
#include <iostream>
#include <algorithm>
#include <vector>
struct SData
{
int m_nData;
double m_dData;
SData(int nData, double dData)
:m_nData(nData),m_dData(dData)
{
}
};
int main()
{
std::vector<SData> v;
for (int i = 9; i > 0; i--)
{
v.push_back(SData(i,i));
}
std::partial_sort(v.begin(), v.begin() + 5, v.end(), [](const SData& d1,const SData& d2)
{
return d1.m_nData < d2.m_nData;
});
for (int i = 0; i < v.size(); i++)
{
std::cout << v[i].m_nData << " ";
}
std::cout << std::endl;
//1 2 3 4 5 9 8 7 6
}