C++中partition与sort的区别

avatar
作者
筋斗云
阅读量:0

在C++中,partitionsort都是STL算法,用于对容器中的元素进行排序或者重排。它们的主要区别在于:

  1. partition算法用于将容器中的元素根据给定的条件进行划分,使得满足条件的元素在前面,不满足条件的元素在后面。划分后,不保证元素的相对位置不变。例如,可以将所有小于某个值的元素放在前面,而大于等于某个值的元素放在后面。
std::vector<int> vec = {5, 3, 8, 2, 7, 4}; auto it = std::partition(vec.begin(), vec.end(), [](int i){ return i < 5; }); // vec变为 {3, 2, 4, 5, 7, 8},it指向第一个不满足条件的元素7 
  1. sort算法用于对容器中的元素进行排序。它会对所有元素进行重新排列,使得它们按照指定的排序规则(默认是升序)排列。排序后,元素的相对位置会改变。
std::vector<int> vec = {5, 3, 8, 2, 7, 4}; std::sort(vec.begin(), vec.end()); // vec变为 {2, 3, 4, 5, 7, 8} 

总的来说,partition是一种重排算法,用于将符合特定条件的元素移动到容器的前面,而sort是一种排序算法,用于对容器中的元素进行排序。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!