<cliext/utility>
(STL/CLR)
Fügen Sie den STL/CLR-Header <cliext/utility>
ein, um die Klassenvorlage pair
und mehrere unterstützende Funktionsvorlagen zu definieren.
Syntax
#include <cliext/utility>
Anforderungen
Header:<cliext/utility>
Namespace:cliext
Deklarationen
Klasse | Beschreibung |
---|---|
pair |
Umschließen sie ein Elementpaar. |
Operator | Beschreibung |
---|---|
operator== (Paar) |
pair gleicher Vergleich. |
operator!= (Paar) |
pair ungleicher Vergleich. |
operator< (Paar) |
pair kleiner als vergleich. |
operator<= (Paar) |
pair kleiner oder gleicher Vergleich. |
operator> (Paar) |
pair größer als der Vergleich. |
operator>= (Paar) |
pair größer als oder gleicher Vergleich. |
Funktion | Beschreibung |
---|---|
make_pair |
Erstellen Sie ein pair Aus einem Wertepaar. |
pair
Die Vorlagenklasse beschreibt ein Objekt, das ein Wertepaar umschließt.
Syntax
template<typename Value1,
typename Value2>
ref class pair;
Parameter
Value1
Der Typ des ersten umschlossenen Werts.
Value2
Der Typ des zweiten umschlossenen Werts.
Member
Typdefinition | Beschreibung |
---|---|
pair::first_type |
Der Typ des ersten umschlossenen Werts. |
pair::second_type |
Der Typ des zweiten umschlossenen Werts. |
Member-Objekt | Beschreibung |
---|---|
pair::first |
Der erste gespeicherte Wert. |
pair::second |
Der zweite gespeicherte Wert. |
Memberfunktion | Beschreibung |
---|---|
pair::pair |
Erstellt ein pair -Objekt. |
pair::swap |
Vertauscht den Inhalt von zwei pair -Objekten. |
Operator | Beschreibung |
---|---|
pair::operator= |
Ersetzt das gespeicherte Wertepaar. |
Hinweise
Das Objekt speichert ein Wertepaar. Sie verwenden diese Vorlagenklasse, um zwei Werte in einem einzelnen Objekt zu kombinieren. Außerdem speichert das Objekt cliext::pair
(hier beschrieben) nur verwaltete Typen; um ein Paar nicht verwalteter Typen zu speichern, std::pair
die in deklariert sind <utility>
.
pair::first
Der erste umschlossene Wert.
Syntax
Value1 first;
Hinweise
Das Objekt speichert den ersten umschlossenen Wert.
Beispiel
// 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
Der Typ des ersten umschlossenen Werts.
Syntax
typedef Value1 first_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Value1
dar.
Beispiel
// 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=
Ersetzt das gespeicherte Wertepaar.
Syntax
pair<Value1, Value2>% operator=(pair<Value1, Value2>% right);
Parameter
right
pair
zu kopieren.
Hinweise
Der Memberoperator kopiert right
in das Objekt und gibt dann zurück *this
. Sie verwenden es, um das gespeicherte Wertepaar durch eine Kopie des gespeicherten Wertepaars in right
.
Beispiel
// 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
Erstellt ein pair
-Objekt.
Syntax
pair();
pair(pair<Coll>% right);
pair(pair<Coll>^ right);
pair(Value1 val1, Value2 val2);
Parameter
right
pair
zu speichern.
val1
Erster Wert, der gespeichert werden soll.
val2
Zweiter Wert, der gespeichert werden soll.
Hinweise
Der Konstruktor:
pair();
initialisiert das gespeicherte Paar mit konstruierten Standardwerten.
Der Konstruktor:
pair(pair<Value1, Value2>% right);
initialisiert das gespeicherte Paar mit right.first
und right.second
.
pair(pair<Value1, Value2>^ right);
initialisiert das gespeicherte Paar mit right->first
und right->second
.
Der Konstruktor:
pair(Value1 val1, Value2 val2);
initialisiert das gespeicherte Paar mit val1
und val2
.
Beispiel
// 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
Der zweite umschlossene Wert.
Syntax
Value2 second;
Hinweise
Das Objekt speichert den zweiten umschlossenen Wert.
Beispiel
// 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
Der Typ des zweiten umschlossenen Werts.
Syntax
typedef Value2 second_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Value2
dar.
Beispiel
// 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
Vertauscht den Inhalt von zwei pair
-Objekten.
Syntax
void swap(pair<Value1, Value2>% right);
Parameter
right
pair
um Inhalte zu tauschen.
Hinweise
Die Memberfunktion tauscht das gespeicherte Wertepaar zwischen *this
und right
.
Beispiel
// 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
Erstellen Sie ein pair
Aus einem Wertepaar.
Syntax
template<typename Value1,
typename Value2>
pair<Value1, Value2> make_pair(Value1 first, Value2 second);
Parameter
Value1
Der Typ des ersten umschlossenen Werts.
Value2
Der Typ des zweiten umschlossenen Werts.
first
Erster Wert, der umbrochen werden soll.
second
Zweiter Wert, der umbrochen werden soll.
Hinweise
Die Funktionsvorlage gibt zurück pair<Value1, Value2>(first, second)
. Sie verwenden es, um ein pair<Value1, Value2>
Objekt aus einem Wertepaar zu konstruieren.
Beispiel
// 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!=
(Paar)
pair
ungleicher Vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator!=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück !(left == right)
. Sie verwenden sie, um zu testen, ob left
die Reihenfolge nicht identisch ist, wenn right
die beiden pair
Objekte nach Element verglichen werden.
Beispiel
// 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
kleiner als vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator<(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück left.first < right.first || !(right.first < left.first && left.second < right.second
. Sie verwenden es, um zu testen, ob left
das Vorher right
sortiert wird, wenn die beiden pair
Objekte nach Element verglichen werden.
Beispiel
// 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
kleiner oder gleicher Vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator<=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück !(right < left)
. Sie verwenden es, um zu testen, ob left
das Element nach Element nicht sortiert right
wird, wenn die beiden pair
Objekte nach Element verglichen werden.
Beispiel
// 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
gleicher Vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator==(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück left.first == right.first && left.second == right.second
. Sie verwenden es, um zu testen, ob left
die Reihenfolge wie bei einem Vergleich der beiden pair
Objekte nach Element identisch right
ist.
Beispiel
// 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
größer als der Vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator>(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück right < left
. Sie verwenden es, um zu testen, ob left
nach right
dem Vergleich der beiden pair
Objekte Element nach Element sortiert wird.
Beispiel
// 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
größer als oder gleicher Vergleich.
Syntax
template<typename Value1,
typename Value2>
bool operator>=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Parameter
left
Links pair
, um zu vergleichen.
right
Recht pair
zum Vergleichen.
Hinweise
Die Operatorfunktion gibt zurück !(left < right)
. Sie verwenden sie, um zu testen, ob die beiden pair
Objekte nach Element verglichen werden, bevor left
right
sie nicht sortiert werden.
Beispiel
// 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