<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::pair
bir 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 Value1
iç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 right
depolanan 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.second
ile right.first
depolanan çifti başlatır.
pair(pair<Value1, Value2>^ right);
ve right->second
ile right->first
depolanan çifti başlatır.
Oluşturucu:
pair(Value1 val1, Value2 val2);
ve val2
ile 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 Value2
iç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 right
arası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