Computer >> Máy Tính >  >> Lập trình >> C ++

partition_point trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để hiểu phân vùng_ điểm trong C ++.

Điểm phân vùng là một phương thức trả về một trình vòng lặp trỏ đến giá trị đầu tiên trong một phạm vi nhất định. Phạm vi là phạm vi được phân vùng trong đó vị từ không đúng.

Ví dụ

#include <iostream>
#include <algorithm>
#include <vector>
bool IsOdd(int i) { return (i % 2) == 1; }
int main(){
   std::vector<int> data{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
   std::vector<int> odd, even;
   std::stable_partition(data.begin(), data.end(), IsOdd);
   auto it = std::partition_point(data.begin(), data.end(),
   IsOdd);
   odd.assign(data.begin(), it);
   even.assign(it, data.end());
   std::cout << "odd:";
   for (int& x : odd)
      std::cout << ' ' << x;
   std::cout << '\n';
   std::cout << "even:";
   for (int& x : even)
      std::cout << ' ' << x;
   std::cout << '\n';
   return 0;
}

Đầu ra

odd: 1 3 5 7 9
even: 2 4 6 8 10