<cliext/utility> (STL/CLR)

Sınıf şablonunu ve birkaç destekleyici işlev şablonunu pair tanımlamak için STL/CLR üst bilgisini <cliext/utility> ekleyin.

Sözdizimi

#include <cliext/utility>

Gereksinimler

Header:<cliext/utility>

Ad alanı: cliext

Bildirimler

Sınıf Açıklama
pair Bir öğe çiftini sarmalama.
Operator Açıklama
operator== (çift) pair eşittir karşılaştırması.
operator!= (çift) pair eşit olmayan karşılaştırma.
operator< (çift) pair küçüktür karşılaştırması.
operator<= (çift) pair küçük veya eşit karşılaştırma.
operator> (çift) pair karşılaştırmadan büyük.
operator>= (çift) pair büyük veya eşit karşılaştırma.
İşlev Açıklama
make_pair pair Bir değer çiftinden bir tane yapın.

pair

Şablon sınıfı, bir değer çiftini sarmalayan bir nesneyi açıklar.

Sözdizimi

template<typename Value1,
    typename Value2>
    ref class pair;

Parametreler

Value1
İlk sarmalanan değerin türü.

Value2
İkinci sarmalanan değerin türü.

Üyeler

Tür tanımı Açıklama
pair::first_type sarmalanan ilk değerin türü.
pair::second_type İkinci sarmalanan değerin türü.
Üye nesnesi Açıklama
pair::first İlk depolanan değer.
pair::second İkinci depolanmış değer.
Üye işlevi Açıklama
pair::pair Bir pair nesne oluşturur.
pair::swap İki pair nesnenin içeriğini değiştirir.
Operator Açıklama
pair::operator= Depolanan değer çiftini değiştirir.

Açıklamalar

nesnesi bir değer çifti depolar. İki değeri tek bir nesnede birleştirmek için bu şablon sınıfını kullanırsınız. Ayrıca, nesnesi cliext::pair (burada açıklanmıştır) yalnızca yönetilen türleri depolar; yönetilmeyen std::pairbir tür çiftini depolamak için içinde <utility>bildirilir.

pair::first

İlk sarmalanan değer.

Sözdizimi

Value1 first;

Açıklamalar

nesnesi ilk sarmalanan değeri depolar.

Örnek

// cliext_pair_first.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

    cliext::pair<wchar_t, int>::first_type first_val = c1.first;
    cliext::pair<wchar_t, int>::second_type second_val = c1.second;
    System::Console::WriteLine("[{0}, {1}]", first_val, second_val);
    return (0);
    }
[x, 3]

pair::first_type

sarmalanan ilk değerin türü.

Sözdizimi

typedef Value1 first_type;

Açıklamalar

türü, şablon parametresi Value1için bir eş anlamlıdır.

Örnek

// cliext_pair_first_type.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

    cliext::pair<wchar_t, int>::first_type first_val = c1.first;
    cliext::pair<wchar_t, int>::second_type second_val = c1.second;
    System::Console::WriteLine("[{0}, {1}]", first_val, second_val);
    return (0);
    }
[x, 3]

pair::operator=

Depolanan değer çiftini değiştirir.

Sözdizimi

pair<Value1, Value2>% operator=(pair<Value1, Value2>% right);

Parametreler

right
pair öğesini seçin.

Açıklamalar

Üye işleci nesnesine kopyalanır right ve döndürür *this. Bunu, depolanan değer çiftini içindeki rightdepolanan değer çiftinin bir kopyasıyla değiştirmek için kullanırsınız.

Örnek

// cliext_pair_operator_as.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

// assign to a new pair
    cliext::pair<wchar_t, int> c2;
    c2 = c1;
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);
    return (0);
    }
[x, 3]
[x, 3]

pair::pair

Bir pair nesne oluşturur.

Sözdizimi

pair();
pair(pair<Coll>% right);
pair(pair<Coll>^ right);
pair(Value1 val1, Value2 val2);

Parametreler

right
pair öğesini seçin.

val1
Depo için ilk değer.

val2
Depo için ikinci değer.

Açıklamalar

Oluşturucu:

pair();

, depolanan çifti varsayılan olarak inşa edilmiş değerlerle başlatır.

Oluşturucu:

pair(pair<Value1, Value2>% right);

ve right.secondile right.first depolanan çifti başlatır.

pair(pair<Value1, Value2>^ right);

ve right->secondile right->first depolanan çifti başlatır.

Oluşturucu:

pair(Value1 val1, Value2 val2);

ve val2ile val1 depolanan çifti başlatır.

Örnek

// cliext_pair_construct.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
// construct an empty container
    cliext::pair<wchar_t, int> c1;
    System::Console::WriteLine("[{0}, {1}]",
        c1.first == L'\0' ? "\\0" : "??", c1.second);

// construct with a pair of values
    cliext::pair<wchar_t, int> c2(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

// construct by copying another pair
    cliext::pair<wchar_t, int> c3(c2);
    System::Console::WriteLine("[{0}, {1}]", c3.first, c3.second);

// construct by copying a pair handle
    cliext::pair<wchar_t, int> c4(%c3);
    System::Console::WriteLine("[{0}, {1}]", c4.first, c4.second);

    return (0);
    }
[\0, 0]
[x, 3]
[x, 3]
[x, 3]

pair::second

İkinci sarmalanan değer.

Sözdizimi

Value2 second;

Açıklamalar

nesnesi, sarmalanan ikinci değeri depolar.

Örnek

// cliext_pair_second.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

    cliext::pair<wchar_t, int>::first_type first_val = c1.first;
    cliext::pair<wchar_t, int>::second_type second_val = c1.second;
    System::Console::WriteLine("[{0}, {1}]", first_val, second_val);
    return (0);
    }
[x, 3]

pair::second_type

İkinci sarmalanan değerin türü.

Sözdizimi

typedef Value2 second_type;

Açıklamalar

türü, şablon parametresi Value2için bir eş anlamlıdır.

Örnek

// cliext_pair_second_type.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

    cliext::pair<wchar_t, int>::first_type first_val = c1.first;
    cliext::pair<wchar_t, int>::second_type second_val = c1.second;
    System::Console::WriteLine("[{0}, {1}]", first_val, second_val);
    return (0);
    }
[x, 3]

pair::swap

İki pair nesnenin içeriğini değiştirir.

Sözdizimi

void swap(pair<Value1, Value2>% right);

Parametreler

right
pair öğesini seçin.

Açıklamalar

Üye işlevi, depolanan değer çiftini ile rightarasında *this değiştirir.

Örnek

// cliext_pair_swap.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>

typedef cliext::collection_adapter<
    System::Collections::ICollection> Mycoll;
int main()
    {
    cliext::deque<wchar_t> d1;
    d1.push_back(L'a');
    d1.push_back(L'b');
    d1.push_back(L'c');
    Mycoll c1(%d1);

// display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

// construct another container with repetition of values
    cliext::deque<wchar_t> d2(5, L'x');
    Mycoll c2(%d2);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

// swap and redisplay
    c1.swap(c2);
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
x x x x x
x x x x x
a b c

make_pair

pair Bir değer çiftinden bir tane yapın.

Sözdizimi

template<typename Value1,
    typename Value2>
    pair<Value1, Value2> make_pair(Value1 first, Value2 second);

Parametreler

Value1
sarmalanan ilk değerin türü.

Value2
İkinci sarmalanan değerin türü.

first
Kaydıracak ilk değer.

second
Kaydıracak ikinci değer.

Açıklamalar

İşlev şablonu döndürür pair<Value1, Value2>(first, second). Bunu bir değer çiftinden nesne pair<Value1, Value2> oluşturmak için kullanırsınız.

Örnek

// cliext_make_pair.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);

    c1 = cliext::make_pair(L'y', 4);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    return (0);
    }
[x, 3]
[y, 4]

operator!= (çift)

pair eşit olmayan karşılaştırma.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator!=(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür !(left == right). İki pair nesne öğeye göre karşılaştırıldığında aynı sıralı right olup olmadığını left test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_ne.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] != [x 3] is {0}",
        c1 != c1);
    System::Console::WriteLine("[x 3] != [x 4] is {0}",
        c1 != c2);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] != [x 3] is False
[x 3] != [x 4] is True

operator<

pair küçüktür karşılaştırması.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator<(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür left.first < right.first || !(right.first < left.first && left.second < right.second. İki pair nesne öğeye göre karşılaştırıldığında önce right öğesinin sıralanıp sıralı olmadığını left test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_lt.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] < [x 3] is {0}",
        c1 < c1);
    System::Console::WriteLine("[x 3] < [x 4] is {0}",
        c1 < c2);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] < [x 3] is False
[x 3] < [x 4] is True

operator<=

pair küçük veya eşit karşılaştırma.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator<=(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür !(right < left). İki pair nesne öğeye göre karşılaştırıldıktan sonra right sıralanıp left sıralı olmadığını test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_le.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] <= [x 3] is {0}",
        c1 <= c1);
    System::Console::WriteLine("[x 4] <= [x 3] is {0}",
        c2 <= c1);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] <= [x 3] is True
[x 4] <= [x 3] is False

operator==

pair eşittir karşılaştırması.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator==(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür left.first == right.first && left.second == right.second. İki pair nesne öğeye göre karşılaştırıldığında aynı sıralanmış right olup olmadığını left test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_eq.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] == [x 3] is {0}",
        c1 == c1);
    System::Console::WriteLine("[x 3] == [x 4] is {0}",
        c1 == c2);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] == [x 3] is True
[x 3] == [x 4] is False

pair::operator>

pair karşılaştırmadan büyük.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator>(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür right < left. İki pair nesne öğeye göre karşılaştırıldıktan sonra right sıralanıp sıralı olmadığını left test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_gt.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] > [x 3] is {0}",
        c1 > c1);
    System::Console::WriteLine("[x 4] > [x 3] is {0}",
        c2 > c1);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] > [x 3] is False
[x 4] > [x 3] is True

operator>=

pair büyük veya eşit karşılaştırma.

Sözdizimi

template<typename Value1,
    typename Value2>
    bool operator>=(pair<Value1, Value2>% left,
        pair<Value1, Value2>% right);

Parametreler

left
Karşılaştırmak için sol pair .

right
Karşılaştırma pair hakkı.

Açıklamalar

işleç işlevi döndürür !(left < right). İki pair nesne öğeye göre karşılaştırıldığında önce right sıralanıp left sıralı olmadığını test etmek için bunu kullanırsınız.

Örnek

// cliext_pair_operator_ge.cpp
// compile with: /clr
#include <cliext/utility>

int main()
    {
    cliext::pair<wchar_t, int> c1(L'x', 3);
    System::Console::WriteLine("[{0}, {1}]", c1.first, c1.second);
    cliext::pair<wchar_t, int> c2(L'x', 4);
    System::Console::WriteLine("[{0}, {1}]", c2.first, c2.second);

    System::Console::WriteLine("[x 3] >= [x 3] is {0}",
        c1 >= c1);
    System::Console::WriteLine("[x 3] >= [x 4] is {0}",
        c1 >= c2);
    return (0);
    }
[x, 3]
[x, 4]
[x 3] >= [x 3] is True
[x 3] >= [x 4] is False