Giriş
Functor'ın false döndürdüklerini sona taşır.
Örnek
Şöyle yaparız
std::vector<uint32_t> v {0,1,2,3,4,0,0,0};
auto bound = std::stable_partition(v.begin(), v.end(), [](auto element)
{
return element > 0;
});
Bir bölümlemenin boş olduğunu anlamak için şöyle yaparız.
bound == v.begin() when first partition is empty.bound == v.end() when second partition is empty.
Bölümlemenin büyüklüğünü anlamak için şöyle yaparız.
std::distance(v.begin(), bound) tells the size of the first partitionstd::distance(bound, v.end()) tells the size of the second partition
Örnek
Şöyle yaparız.
bool try_to_process (fs::path const& p)
{
...
}
std::vector<fs::path> paths = ...;
paths.erase (std::stable_partition(paths, try_to_process), paths.end());
Hiç yorum yok:
Yorum Gönder