Aracılığıyla paylaş


<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.

yah1y2x8.collapse_all(tr-tr,VS.110).gifİşlevler

adjacent_find

İki bitişik öğeleri arar eşit veya belirtilen bir koşula uyması.

all_of

İade true bir durum olduğunda verilen aralıktaki her bir öğesi yok.

any_of

İade true bir durum olduğunda öğeleri belirtilen aralık içinde en az bir kez mevcut.

binary_search

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.

copy

Öğ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.

copy_backward

Öğ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.

copy_if

Test belirli bir aralıktaki tüm öğeleri kopyalamak true için belirtilen bir koşul

copy_n

Öğeleri belirli bir sayıda kopyalar.

count

Aralığındaki değerleri belirtilen bir değerle eşleşen öğe sayısını döndürür.

count_if

Değerleri belirtilen bir koşula uyan aralık öğelerin sayısını verir.

eşit

İ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.

equal_range

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.

dolgu

Belirtilen aralıktaki her öğe için aynı yeni değerini atar.

fill_n

Belirli bir öğe ile başlayan bir aralıktaki öğeleri belirli bir sayıda yeni bir değer atar.

find

Belirtilen değer aralığındaki ilk geçtiği bir öğenin konumunu bulur.

find_end

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.

find_first_of

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.

find_if

Belirtilen koşula uygun bir aralıktaki ilk geçtiği bir öğenin konumunu bulur.

find_if_not

Belirtilen aralıkta bir koşulla eşleşmesi yok ilk öğeyi döndürür.

for_each

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.

üret

Bir aralıktaki her öğe için bir işlevi nesnesi tarafından oluşturulan değerler atar.

generate_n

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.

içerir

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.

inplace_merge

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.

is_heap

İade true Belirtilen aralıktaki öğelerin yığın form durumunda.

is_heap_until

İade true kadar son öğe bir yığın belirtilen aralık oluşturması durumunda.

is_partitioned

Döndürür true verilen aralıktaki tüm öğeler, test, true gelen bir koşul için test öðelerden önce false.

is_sorted

İade true Belirtilen aralıktaki öğelerin sıralı düzende ise.

is_sorted_until

İade true Belirtilen aralıktaki öğelerin sıralı düzende ise.

iter_swap

İki değeri belirtilen Yineleyicilerde çifti tarafından başvurulan değiş tokuş eder.

lexicographical_compare

Karşılaştırır, küçük olanı belirlemek için iki sıraları arasında öğe iki.

lower_bound

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.

make_checked_array_iterator

Oluşturur bir checked_array_iterator diğer algoritmalar tarafından kullanılabilecek.

make_heap

Öğ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.

max

İki nesne karşılaştırır ve iki daha büyük verir sıralama ölçütü ikili bir yüklemi burada belirtilebilir.

max_element

Sıralama ölçütü ikili bir yüklemi burada belirtilebilir Belirtilen aralıktaki en büyük öğe ilk oluşumunu bulur.

merge

İ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.

en küçük

İki nesne karşılaştırır ve iki küçük olanı verir sıralama ölçütü ikili bir yüklemi burada belirtilebilir.

min_element

Sıralama ölçütü ikili bir yüklemi burada belirtilebilir Belirtilen aralıktaki en küçük öğenin ilk oluşumunu bulur.

minmax

İ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.

minmax_element

Gerçekleştirdiği çalışmanın gerçekleştiren min_element ve max_element bir çağrı.

uyuşmazlığı

İ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.

<alg> move

Belirtilen aralığı ile ilişkili öğeler taşır.

move_backward

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.

next_permutation

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.

none_of

İade true bir durum olduğunda asla verilen aralıktaki öğeleri arasında bugünkü.

nth_element

Öğ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.

partial_sort

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.

partial_sort_copy

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.

partition

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.

partition_copy

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.

partition_point

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.

pop_heap

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.

prev_permutation

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.

push_heap

Önceki öğeleri aralığında oluşan varolan bir yığın bir aralık sonunda ise bir öğe ekler.

random_shuffle

Bir dizi yeniden düzenler n , birinde bir aralıktaki öğeleri n! olası düzenlemelerin rasgele seçilmiş.

remove

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.

remove_copy

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.

remove_copy_if

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.

remove_if

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.

Değiştir

Her öğe bir aralıktaki inceler ve belirtilen değeri eşleşirse yerini alır.

replace_copy

Her öğe, kaynak aralığı inceler ve yeni bir hedef aralığı sonucu kopyalanırken belirtilen değeri eşleşirse, yerini alır.

replace_copy_if

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.

replace_if

Her öğe bir aralıktaki inceler ve belirtilen yüklemi karşılayıp karşılamadığını yerini alır.

geriye doğru

Bir aralık içindeki öğelerin sırasını ters çevirir.

reverse_copy

Hedef aralığına kopyalanırken kaynak aralıktaki öğelerin sırasını ters çevirir

döndürme

İki bitişik aralıklarda öğeleri değiş tokuş eder.

rotate_copy

Kaynak aralığı içinde bitişik iki aralığı öğelerinde yapar ve sonucu hedef aralığına kopyalar.

Arama

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.

search_n

Öğ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.

set_difference

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.

set_intersection

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.

set_symmetric_difference

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.

set_union

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.

sort

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.

sort_heap

Bir yığın sıralanmış bir aralığa dönüştürür.

stable_partition

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.

stable_sort

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.

takas

İ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.

swap_ranges

Öğeleri boyuta sahip öğeler, başka eşit aralıkta sahip bir aralığın değiş tokuş eder.

dönüştürme

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.

benzersiz

Belirtilen aralık içinde birbirine bitişik olan yinelenen öğeleri kaldırır.

unique_copy

Birbirine bitişik olan yinelenen öğeleri dışında bir hedef aralığın içine kaynak aralığı öğelerden kopyalar.

upper_bound

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

Standart Şablon Kütüphanesi

Diğer Kaynaklar

Üstbilgi dosyaları