partial_sort(MyTestContain.begin()+1,MyTestContain.begin()+3,MyTestContain.begin()+6,Comparefunc);//partial_sort(a b c) 在a->c中排序,选取前b-a个,顺序的!!!放到a->b的位置。
nth_element(MyTestContain.begin()+1,MyTestContain.begin()+5,MyTestContain.end(),Comparefunc); //这个更诡异,文章认为这个函数只是将数据分块,不排序。在a->c中排序,选取前b-a个,随意的!!!放到a->b的位置
bound=partition(MyTestContain.begin()+2,MyTestContain.end()-3,Comparefunc2);
貌似和partial_sort用法相近,不过是这样的:
前两个函数是二元运算,是两个element之间的比较
后一个是一元运算,element和benchmark比较
“所谓的严格弱排序可理解为键类型数据上的“小于”关系。当用于一个键与自身的比较时,肯定会导致 false 结果。
如果它们相互之间都不存在“小于”关系,则容器将之视为相同的键。用做 map 对象的键时,可使用任意一个键值来访问相应的元素。”
也就是说,如果数值相同,compare函数要返回false,否则排序将抛出错误!