Aracılığıyla paylaş


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.

template<class InputIterator, class RandomAccessIterator>
   RandomAccessIterator partial_sort_copy(
      InputIterator _First1, 
      InputIterator _Last1,
      RandomAccessIterator _First2, 
      RandomAccessIterator _Last2
   );
template<class InputIterator, class RandomAccessIterator, class BinaryPredicate>
   RandomAccessIterator partial_sort_copy(
      InputIterator _First1, 
      InputIterator _Last1,
      RandomAccessIterator _First2, 
      RandomAccessIterator _Last2,
      BinaryPredicate _Comp
   );

Parametreler

  • _First1
    Kaynak aralığındaki ilk öğenin konumunu adresleme giriş Yineleyici.

  • _Last1
    Bir giriş Yineleyici konumu bir son öğeden önceki kaynak aralığındaki adresleme.

  • _First2
    Sıralanmış hedef aralıktaki ilk öğenin konumunu adresleme rasgele erişim Yineleyici.

  • _Last2
    Konum bir son öğe geçmiş sıralanmış hedef aralıktaki adresleme rasgele erişim Yineleyici.

  • _Comp
    Koşul varsa iki öğe alınması için yerine getirilmesi tanımlayan kullanıcı tanımlı işlevin doðrulama nesnesi olarak eşdeğer.İkili karşılaştırma iki baðýmsýz deðiþken alýr ve döner true memnun, ve false tatmin olduğunda.

Dönüş Değeri

Hedef aralığın bir pozisyon son öğenin ötesindeki öğesinde adresleme rasgele erişim Yineleyici kaynak aralığından eklemiş olabilirsiniz.

Notlar

Kaynak ve hedef aralıkların çakışmamaları gerekir ve geçerli olması gerekir; Tüm işaretçiler dereferenceable ve her sıra içinde son konuma birinciden erişilebilmelidir tarafından incrementation.

İkili karşılaştırma eşdeğer olmayan öğeleri sipariş, sipariş sıkı bir zayıf sağlamanız gerekir, ancak eşdeğer öğeler.İki öğe altında daha az daha eşdeğerdir ancak şart değil eşit, ikisi de varsa diğer azdır.

Örnek

// alg_partial_sort_copy.cpp
// compile with: /EHsc
#include <vector>
#include <list>
#include <algorithm>
#include <functional>
#include <iostream>

int main() {
    using namespace std;
    vector<int> v1, v2;
    list<int> list1;
    vector<int>::iterator iter1, iter2;
    list<int>::iterator list1_Iter, list1_inIter;

    int i;
    for (i = 0; i <= 9; i++)
        v1.push_back(i);

    random_shuffle(v1.begin(), v1.end());

    list1.push_back(60);
    list1.push_back(50);
    list1.push_back(20);
    list1.push_back(30);
    list1.push_back(40);
    list1.push_back(10);

    cout << "Vector v1 = ( " ;
    for (iter1 = v1.begin(); iter1 != v1.end(); iter1++)
        cout << *iter1 << " ";
    cout << ")" << endl;

    cout << "List list1 = ( " ;
    for (list1_Iter = list1.begin();
         list1_Iter!= list1.end();
         list1_Iter++)
        cout << *list1_Iter << " ";
    cout << ")" << endl;

    // Copying a partially sorted copy of list1 into v1
    vector<int>::iterator result1;
    result1 = partial_sort_copy(list1.begin(), list1.end(),
             v1.begin(), v1.begin() + 3);

    cout << "List list1 Vector v1 = ( " ;
    for (iter1 = v1.begin() ; iter1 != v1.end() ; iter1++)
        cout << *iter1 << " ";
    cout << ")" << endl;
    cout << "The first v1 element one position beyond"
         << "\n the last L 1 element inserted was " << *result1
         << "." << endl;

    // Copying a partially sorted copy of list1 into v2
    int ii;
    for (ii = 0; ii <= 9; ii++)
        v2.push_back(ii);

    random_shuffle(v2.begin(), v2.end());
    vector<int>::iterator result2;
    result2 = partial_sort_copy(list1.begin(), list1.end(),
             v2.begin(), v2.begin() + 6);

    cout << "List list1 into Vector v2 = ( " ;
    for (iter2 = v2.begin() ; iter2 != v2.end(); iter2++)
        cout << *iter2 << " ";
    cout << ")" << endl;
    cout << "The first v2 element one position beyond"
         << "\n the last L 1 element inserted was " << *result2
         << "." << endl;
}

Örnek Çıktı

Vector v1 = ( 8 1 9 2 0 5 7 3 4 6 )
List list1 = ( 60 50 20 30 40 10 )
List list1 Vector v1 = ( 10 20 30 2 0 5 7 3 4 6 )
The first v1 element one position beyond
 the last L 1 element inserted was 2.
List list1 into Vector v2 = ( 10 20 30 40 50 60 1 8 5 2 )
The first v2 element one position beyond
 the last L 1 element inserted was 1.

Gereksinimler

Başlık: <algorithm>

Namespace: std

Ayrıca bkz.

Başvuru

partial_sort_copy (STL Samples)

Predicate Version of partial_sort_copy

Standart Şablon Kütüphanesi