Aracılığıyla paylaş


parallel_buffered_sort işlevi

Belirtilen aralıktaki öğelerin nondescending bir sipariş veya paralel bir ikili karşılaştırma belirtimi tarafından belirtilen bir sıralama ölçütü için göre düzenler.Bu işlev anlam benzer std::sort , gerekli dışında karşılaştırmaya dayalı, kararsız, yerinde sıralama olması bakımından O(n) ek alan ve sıralanan öğeleri için varsayılan başlatma gerektirir.

template<
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Allocator,
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Allocator,
   typename _Random_iterator
>
inline void parallel_buffered_sort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

Parametreler

  • _Random_iterator
    Giriş aralığı Yineleyici türü.

  • _Allocator
    stl uyumlu bellek ayırıcı yazın.

  • _Function
    İkili karşılaştırıcı türü.

  • _Begin
    Sıralanan aralıkta ilk öğenin konumunu adresleme bir rasgele erişim Yineleyici.

  • _End
    Sıralanacak geçen aralıktaki son öğenin konumunu adresleme bir rasgele erişim Yineleyici.

  • _Alloc
    stl uyumlu bellek ayırıcı örneği.

  • _Func
    Sıralama, birbirini izleyen öğeleri tarafından karşılanması karşılaştırma ölçütü tanımlar doðrulama işlevi kullanıcı tanımlı bir nesne.İkili karşılaştırma iki baðýmsýz deðiþken alýr ve döner true memnun, ve false zaman uygulanmadı.Bu karşılaştırıcı işlevi, bir katı zayıf çiftleri serisinden öğelerinin üzerinde sipariş tanıtamazlar gerekir.

  • _Chunk_size
    İki paralel yürütme içine split öbek mimimum boyutu.

Notlar

Gerekli tüm aşırı n * sizeof(T) ek alan nerede n sıralanması için öğe sayısı ve T öğe türü.Çoğu zaman parallel_buffered_sort bir geliştirme, performans üzerinde gösterir parallel_sort, ve kullanılabilir bellek varsa, parallel_sort üzerinde kullanmanız gerekir.

İkili karşılaştırıcı sağlamazsanız std::less operator sağlamak öğe türü gerektirir varsayılan kullanılan operator<().

Bir ayırıcı yazın veya stl bellek ayırıcı örneği vermezseniz std::allocator<T> arabellek ayırmak için kullanılır.

Algoritma giriş aralığı iki bölmek böler ve her bir parça paralel yürütme için iki sub-chunks ilki böler.İsteğe bağlı bağımsız değişkeni _Chunk_size algoritması, işleme boyutu parçalarını belirtmek için kullanılan < _Chunk_sizeseri olarak.

Gereksinimler

Başlık: ppl.h

Namespace: eşzamanlılık

Ayrıca bkz.

Başvuru

eşzamanlılık ad