溫馨提示×

C++中partition與sort的區別

c++
小樊
114
2024-08-19 20:21:34
欄目: 編程語言

在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是一種排序算法,用于對容器中的元素進行排序。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女