<algorithm>
Algoritmaları gerçekleştiren standart şablon kitaplığı (stl) kapsayıcı şablon iþlev tanýmlar.
namespace std {
template<class InputIterator, class Predicate>
bool all_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
bool any_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
bool none_of (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Function>
Fn1 for_each (
InputIterator _First,
InputIterator _Last,
Function _Func
);
template<class InputIterator, class Type>
InputIterator find (
InputIterator _First,
InputIterator _Last,
const Type& _Val
);
template<class InputIterator, class Predicate>
InputIterator find_if (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Predicate>
InputIterator find_if_not (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 find_end (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2
);
template<class ForwardIterator1, class ForwardIterator2,
class Predicate>
ForwardIterator1 find_end (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2,
Predicate _Pred
);
template<class InputIterator, class ForwardIterator>
InputIterator1 find_first_of (
InputIterator _First1,
InputIterator _Last1,
ForwardIterator _First2,
ForwardIterator _Last2
);
template<class InputIterator, class ForwardIterator,
class Predicate>
InputIterator1 find_first_of (
InputIterator _First1,
InputIterator _Last1,
ForwardIterator _First2,
ForwardIterator _Last2,
Predicate _Pred
);
template<class ForwardIterator>
ForwardIterator adjacent_find (
ForwardIterator _First,
ForwardIterator _Last
);
template<class ForwardIterator, class Predicate>
ForwardIterator adjacent_find (
ForwardIterator _First,
ForwardIterator _Last,
Predicate _Pred
);
template<class InputIterator, class Type>
typename iterator_traits<InputIterator>::difference_type
count (
InputIterator _First,
InputIterator _Last,
const Type& _Val
);
template<class InputIterator, class Predicate>
typename iterator_traits<InputIterator>::difference_type
count_if (
InputIterator _First,
InputIterator _Last,
Predicate _Pred
);
template<class InputIterator1, class InputIterator2>
pair<InputIterator1, InputIterator2>
mismatch (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2
);
template<class InputIterator1, class InputIterator2, class Predicate>
pair<InputIterator1, InputIterator2>
mismatch (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2,
Predicate _Pred
);
template<class InputIterator1, class InputIterator2>
bool equal (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2
);
template<class InputIterator1, class InputIterator2, class Predicate>
bool equal (
InputIterator1 _First1,
InputIterator1 _Last1,
InputIterator2 _First2,
Predicate _Pred
);
template<class ForwardIterator1, class ForwardIterator2>
ForwardIterator1 search (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2
);
template<class ForwardIterator1, class ForwardIterator2,
class Predicate>
ForwardIterator1 search (
ForwardIterator1 _First1,
ForwardIterator1 _Last1,
ForwardIterator2 _First2,
ForwardIterator2 _Last2,
Predicate _Pred
);
template<class ForwardIterator, class Size, class Type>
ForwardIterator search_n (
ForwardIterator _First,
ForwardIterator _Last,
Size _Count,
const Type& _Val
);
template<class ForwardIterator, class Size, class Type,
class Predicate>
ForwardIterator search_n (
ForwardIterator _First,
ForwardIterator _Last,
Size _Count,
const Type& _Val,
Predicate _Pred
);
Notlar
stl algoritmaları genel olduklarından çeşitli veri yapıları üzerinde çalışabilir. Üzerinde çalışabilir veri yapıları gibi sadece stl kapsayıcı sınıfları dahil vector ve list, ama aynı zamanda program tanımlı veri yapıları ve dizi öğelerinin belirli algoritması gereksinimleri karşılamak. stl algoritmaları erişme ve Yineleyicilerde üzerinden dolaylı olarak bir kapsayıcı öğeler geçme generality bu düzeyde elde edin.
Genellikle kendi başına veya bitiş pozisyonları belirtilen Yineleyici aralıkları stl algoritmalarını işlemek. Başvurulan aralıkları aralıklardaki tüm imleçler dereferenceable ve sıralarının her aralığın son konuma birinciden erişilebilmelidir anlamda geçerli olarak incrementation.
stl algoritmaları işlemleri ve her stl kapsayıcısının member işlevleri tarafından desteklenen eylemler genişletmek ve, örneğin, kapsayıcı nesneler aynı anda farklı türleri ile çalışma izin verir. İki sonekleri algoritmaları amacı ile ilgili bilgileri iletmek için kullanılır.
Sonek algoritması öğelerinin değerleri yerine öğelerinin değerleri üzerinde çalışan işleve nesnelerle kullanıldığını belirtir. find_if Algoritma değerleri işlevi nesnesi tarafından belirlenen ölçütü karşılayan öğeleri arar ve find algoritması belirli bir değeri arar.
_Copy sonek algoritması öğelerinin değerlerini işleyen kalmayıp aynı zamanda değiştirilen değerleri hedef aralığına kopyalar olduğunu gösterir. reverse Algoritması bir aralık içindeki öğelerin sırasını ters çevirir ve reverse_copy algoritması da sonucu hedef aralığın kopyalar.
stl algoritmaları genellikle kendi amaç ve gereksinimleri hakkında bir şeyler göstermek grupları sınıflandırılır. Bunlar, aksi nonmodifying algoritmaları ile karşılaştırıldığında öğelerinin değerini değiştirmek algoritmaları değiştirme içerir. Mutating algoritmalar öğelerin sırasını, ancak bunların öğelerin değerlerini değiştirin. Algoritmalar kaldırma öğelerden bir aralığa ya da aralık bir kopyasını çıkarabilirsiniz. Algoritmaları sıralama çeşitli şekillerde bir aralıktaki öğeleri yeniden düzenleme ve sıralanan aralıkta algoritmalar yalnızca algoritmaları öğelerinin belirli bir şekilde sıralanmış harekete geçirecek.
Kendi üstbilgi dosyası sayısal işlemek için sağlanan stl sayısal algoritmalarına sahip <numeric>, ve işlev nesneleri ve bağdaştırıcıları üstbilgisinde tanımlanır <functional> Boolean değerleri döndürürler Function nesneleri yüklemler bilinir. Karşılaştırma varsayılan ikili yüklemi olan operator<. Genel olarak, ya da eşdeğer (içinde her ikisi de diğer küçüktür anlam) ya da olduğunu küçüktür diğer iki herhangi bir öğe verilen böylece karşılaştırılabilir, onu olabilir küçüktür, olması gereken sipariş öğeler belirledi. Bu bir nonequivalent öğeler arasında sıralamada sonuçlanır.
İşlevler
İki bitişik öğeleri arar eşit veya belirtilen bir koşula uyması. |
|
İade true bir durum olduğunda verilen aralıktaki her bir öğesi yok. |
|
İade true bir durum olduğunda öğeleri belirtilen aralık içinde en az bir kez mevcut. |
|
Belirtilen değere eşit veya buna eşdeğer bir ikili karşılaştırma belirtimi tarafından belirtilen bir anlamda, sıralanmış bir aralık içinde bir öğe olup olmadığını sınar. |
|
Öğelerin değerlerini kaynak aralığından öğeleri kaynak sırası yineleme ve ileriye doğru bir yönde yeni konumlara atama bir hedef aralığı atar. |
|
Öğelerin değerlerini kaynak aralığından öğeleri kaynak sırası yineleme ve geriye doğru bir yönde yeni konumlara atama bir hedef aralığı atar. |
|
Test belirli bir aralıktaki tüm öğeleri kopyalamak true için belirtilen bir koşul |
|
Öğeleri belirli bir sayıda kopyalar. |
|
Aralığındaki değerleri belirtilen bir değerle eşleşen öğe sayısını döndürür. |
|
Değerleri belirtilen bir koşula uyan aralık öğelerin sayısını verir. |
|
İki öğe için eşitlik veya ikili karşılaştırma tarafından belirtilen bir anlamda eşdeğerlik aralığı karşılaştırır. |
|
Belirtilen öğe ve ikinci konumunu ilk küçüktür veya eşdeğer sıralı bir aralıktaki pozisyonları çiftinin bulur nerede eşdeğerlik veya sıra pozisyonlarda kurmak için kullanılan sipariş duygusu belirtilebilir ikili koşul öğenin konumunu büyüktür. |
|
Belirtilen aralıktaki her öğe için aynı yeni değerini atar. |
|
Belirli bir öğe ile başlayan bir aralıktaki öğeleri belirli bir sayıda yeni bir değer atar. |
|
Belirtilen değer aralığındaki ilk geçtiği bir öğenin konumunu bulur. |
|
Bir son subsequence belirtilen bir sıra aynı veya eşdeğer bir ikili karşılaştırma belirtimi tarafından belirtilen bir fikir de arar. |
|
Hedef aralıkta değerlerden herhangi birine ilk geçtiği ya da ikili karşılaştırma için belirlenen öğeleri tarafından belirtilen bir anlam olarak eşdeğer çeşitli öğelerini ilk geçtiği arar. |
|
Belirtilen koşula uygun bir aralıktaki ilk geçtiği bir öğenin konumunu bulur. |
|
Belirtilen aralıkta bir koşulla eşleşmesi yok ilk öğeyi döndürür. |
|
Belirtilen işlev nesne her öğe bir aralık içinde ileriye doğru sırayla uygulanır ve işlevi nesnesi döndürür. |
|
Bir aralıktaki her öğe için bir işlevi nesnesi tarafından oluşturulan değerler atar. |
|
Atar öğesi belirtilen sayıda işlev nesne tarafından oluşturulan değerler bir aralık ve konumu bir önceki son atanan değeri döndürür. |
|
Sıralanan aralıkta bir ikili koşul öğeler arasındaki sıralamayı veya eşdeğerlik kriterleri burada belirtilebilir ikinci sıralanan aralıkta yer alan tüm öğeleri içeren olup olmadığını sınar. |
|
Sıralama ölçütü ikili bir yüklemi burada belirtilebilir tek sıralanan aralıkta aralığından iki ardışık sıralı öğelerini birleştirir. |
|
İade true Belirtilen aralıktaki öğelerin yığın form durumunda. |
|
İade true kadar son öğe bir yığın belirtilen aralık oluşturması durumunda. |
|
Döndürür true verilen aralıktaki tüm öğeler, test, true gelen bir koşul için test öðelerden önce false. |
|
İade true Belirtilen aralıktaki öğelerin sıralı düzende ise. |
|
İade true Belirtilen aralıktaki öğelerin sıralı düzende ise. |
|
İki değeri belirtilen Yineleyicilerde çifti tarafından başvurulan değiş tokuş eder. |
|
Karşılaştırır, küçük olanı belirlemek için iki sıraları arasında öğe iki. |
|
Sıralama ölçütü ikili bir yüklemi burada belirtilebilir değeri sıfırdan büyük veya belirli bir değere eşit olan bir sipariş edilen aralıktaki ilk öğenin konumunu bulur. |
|
Oluşturur bir checked_array_iterator diğer algoritmalar tarafından kullanılabilecek. |
|
Öğeleri belirtilen aralığından bir yığın ilk öğe büyük olduğu ve hangi sıralama kriteri ikili karşılaştırma belirtimi ile belirtilebilir dönüştürür. |
|
İki nesne karşılaştırır ve iki daha büyük verir sıralama ölçütü ikili bir yüklemi burada belirtilebilir. |
|
Sıralama ölçütü ikili bir yüklemi burada belirtilebilir Belirtilen aralıktaki en büyük öğe ilk oluşumunu bulur. |
|
İki sıralı kaynak aralıklardaki tüm öğeleri sıralama ölçütü ikili koşul burada belirtilen bir sıralanmış, tek hedef aralığın birleştirir. |
|
İki nesne karşılaştırır ve iki küçük olanı verir sıralama ölçütü ikili bir yüklemi burada belirtilebilir. |
|
Sıralama ölçütü ikili bir yüklemi burada belirtilebilir Belirtilen aralıktaki en küçük öğenin ilk oluşumunu bulur. |
|
İki giriş parametreleri karşılaştırır ve bunları sırasına göre en az bir çift olarak verir çok büyük. |
|
Gerçekleştirdiği çalışmanın gerçekleştiren min_element ve max_element bir çağrı. |
|
İki öğe için eşitlik veya ikili karşılaştırma tarafından belirtilen bir anlamda eşdeğer aralığı karşılaştırır ve bir fark oluşmasına ilk pozisyon bulur. |
|
Belirtilen aralığı ile ilişkili öğeler taşır. |
|
Bir yineleyici öğelerinin diğerine taşır. Taşıma Belirtilen aralıktaki son öğe ile başlar ve bu aralıktaki ilk öğeyle sonlanır. |
|
Böylece, İleri duygusu ikili karşılaştırma belirtimi ile burada belirtilen varsa orijinal sipariş lexicographically sonraki büyük permutation tarafından değiştirilir aralıktaki öğeleri yeniden sıralar. |
|
İade true bir durum olduğunda asla verilen aralıktaki öğeleri arasında bugünkü. |
|
Öğeleri doğru bulma, bir dizi bölümlerini nth öğe sırası aralıktaki tüm öğeleri önünde küçük veya ona eşit ve sırayla izleyin tüm öğeler, böylece büyük veya ona eşit. |
|
Bir aralıktaki küçük öğeleri belirli bir sayıda nondescending bir sipariş veya ikili karşılaştırma tarafından belirtilen bir sıralama ölçütü göre düzenler. |
|
Kopyalar öğeler kaynak aralığından nerede kaynak öğeleri sipariş tarafından hedef aralığın içine küçüktür veya başka bir ikili yüklemi belirtilir. |
|
Bir aralıktaki öğeleri iki ayrık kümeler onu karşılamak için başarısız olmuş önceki tekli yüklemi karşılanması bu öğelerle sınıflandırır. |
|
Bir koşulun olduğu öğeleri kopyalar true bir hedefe ve koşul olduğu için false bir başka. Öğeleri belirtilen aralığından gelmelidir. |
|
Koşulunu karşılamıyor verilen aralıktaki ilk öğeyi döndürür. Koşulu karşılayan olanlar olmayanlar önce gelmesini sağlamak için öğeleri sıralanır. |
|
En büyük öğe aralığında sonraki son konuma yığın Önden kaldırır ve geri kalan öğeleri yeni bir öbekten oluşturur. |
|
Böylece, İleri duygusu ikili karşılaştırma belirtimi ile burada belirtilen varsa orijinal sipariş lexicographically sonraki büyük permutation tarafından değiştirilir aralıktaki öğeleri yeniden sıralar. |
|
Önceki öğeleri aralığında oluşan varolan bir yığın bir aralık sonunda ise bir öğe ekler. |
|
Bir dizi yeniden düzenler n , birinde bir aralıktaki öğeleri n! olası düzenlemelerin rasgele seçilmiş. |
|
Belirtilen değer verilen bir aralıktan kalan öğelerin sırasını rahatsız ediyor ve belirtilen değeri boş yeni bir aralığın sonuna döndürerek ortadan kaldırır. |
|
Belirtilen değer öğeleri, öğeleri kalan ve yeni bir hedef aralığın sonuna döndürerek sırasını bozmadan kopyalanmaz dışında kopya öğelerin bir kaynaktan gelen bir hedef aralığına aralığında. |
|
Bir hedefe kopyalar öğeler kaynak aralığındaki bir yüklemi karşılanması değil kopyalanıp kopyalanmayacağını olmasıdır, kalan öğeleri ve yeni bir hedef aralığın sonuna döndürerek sırasını bozmadan aralığında. |
|
Kalan öğelerin sırasını rahatsız ediyor ve belirtilen değeri boş yeni bir aralığın sonuna döndürerek belli bir aralıktan yüklemi karşılamak öğeleri ortadan kaldırır. |
|
Her öğe bir aralıktaki inceler ve belirtilen değeri eşleşirse yerini alır. |
|
Her öğe, kaynak aralığı inceler ve yeni bir hedef aralığı sonucu kopyalanırken belirtilen değeri eşleşirse, yerini alır. |
|
Her öğe bir kaynak aralıktaki inceler ve yeni bir hedef aralığı sonucu kopyalanırken belirtilen yüklemi karşılayıp karşılamadığını yerini alır. |
|
Her öğe bir aralıktaki inceler ve belirtilen yüklemi karşılayıp karşılamadığını yerini alır. |
|
Bir aralık içindeki öğelerin sırasını ters çevirir. |
|
Hedef aralığına kopyalanırken kaynak aralıktaki öğelerin sırasını ters çevirir |
|
İki bitişik aralıklarda öğeleri değiş tokuş eder. |
|
Kaynak aralığı içinde bitişik iki aralığı öğelerinde yapar ve sonucu hedef aralığına kopyalar. |
|
Bir dizi öğelerinin öğelerinin belirli bir sýrada eşit veya öğelerinin belirli sýradaki öðeler için ikili bir karşılaştırma belirtimi tarafından belirtilen bir anlam olarak eşdeğer bir hedef aralıktaki ilk geçtiği arar. |
|
Öğelerin belirtilen sayıda belirli bir değeri veya değeri ikili karşılaştırma belirtimi tarafından belirtildiği şekilde ilişkisine sahip bir aralıktaki ilk subsequence arar. |
|
Tüm sıralama ölçütü ikili koşul burada belirtilen bir sıralanmış, tek hedef aralığın içine sıralanmış bir kaynak aralığı, ancak ikinci bir sıralanmış kaynak aralığı ait öğeleri unites. |
|
Tüm sıralama ölçütü ikili koşul burada belirtilen bir sıralanmış, tek hedef aralığın içine iki sıralı kaynak aralığı ait öğeleri unites. |
|
Tüm biri, ancak ikisini birden, sıralama ölçütü ikili koşul burada belirtilen bir sıralanmış, tek hedef aralığın içine sıralanmış kaynak aralıklarının ait öğeler unites. |
|
Tüm sıralama ölçütü ikili koşul burada belirtilen bir sıralanmış, tek hedef aralığın içine iki sıralı kaynak aralığı en az birine ait olan öğeler unites. |
|
Belirtilen aralıktaki öğelerin nondescending bir sipariş veya ikili karşılaştırma tarafından belirtilen bir sıralama ölçütü göre düzenler. |
|
Bir yığın sıralanmış bir aralığa dönüştürür. |
|
Bir aralıktaki öğeleri iki ayrık kümeler bu öğelerle göreceli eşdeğer öğelerin sırasını koruyarak karşılamak için başarısız olmuş önceki tekli yüklemi karşılanması sınıflandırır. |
|
Belirtilen aralıktaki öğelerin nondescending bir sipariş veya ikili karşılaştırma tarafından belirtilen bir sıralama ölçütü göre düzenler ve göreli eşdeğer öğelerinin sıralamasını korur. |
|
İkinci nesnenin ve ikinci ilk içeriğini ilk nesnesinin içeriğini atama nesneleri, iki tür arasındaki öğelerinin değerleri değiş tokuş eder. |
|
Öğeleri boyuta sahip öğeler, başka eşit aralıkta sahip bir aralığın değiş tokuş eder. |
|
Belirtilen işlev nesnenin kaynak aralıktaki her öğe veya öğeleri çiftinin iki kaynak aralıklardaki uygular ve işlev nesnenin dönüş değerleri hedef aralığına kopyalar. |
|
Belirtilen aralık içinde birbirine bitişik olan yinelenen öğeleri kaldırır. |
|
Birbirine bitişik olan yinelenen öğeleri dışında bir hedef aralığın içine kaynak aralığı öğelerden kopyalar. |
|
Sıralama ölçütü ikili bir yüklemi burada belirtilebilir belirtilen değerden daha büyük bir değere sahip bir sipariş edilen aralıktaki ilk öğenin konumunu bulur. |
Ayrıca bkz.
Başvuru
Standart C++ Kitaplığı'nda iş parçacığı güvenliği