Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Включите заголовок <cliext/utility> STL/CLR, чтобы определить шаблон pair класса и несколько вспомогательных шаблонов функций.
Синтаксис
#include <cliext/utility>
Требования
Заголовок:<cliext/utility>
Пространство имен: cliext
Объявления
| Класс | Description |
|---|---|
pair |
Обтекайте пару элементов. |
| Operator | Description |
|---|---|
operator== (пара) |
pair равное сравнение. |
operator!= (пара) |
pair не равное сравнение. |
operator< (пара) |
pair меньше сравнения. |
operator<= (пара) |
pair меньше или равное сравнение. |
operator> (пара) |
pair больше, чем сравнение. |
operator>= (пара) |
pair больше или равное сравнение. |
| Function | Description |
|---|---|
make_pair |
Сделайте из pair пары значений. |
pair
Класс шаблона описывает объект, который упаковывает пару значений.
Синтаксис
template<typename Value1,
typename Value2>
ref class pair;
Параметры
Value1
Тип первого завернутого значения.
Value2
Тип второго завернутого значения.
Участники
| Определение типа | Description |
|---|---|
pair::first_type |
Тип первого завернутого значения. |
pair::second_type |
Тип второго завернутого значения. |
| Объект Member | Description |
|---|---|
pair::first |
Первое сохраненное значение. |
pair::second |
Второе сохраненное значение. |
| Функция-член | Description |
|---|---|
pair::pair |
Формирует объект pair. |
pair::swap |
Переключает содержимое двух pair объектов. |
| Operator | Description |
|---|---|
pair::operator= |
Заменяет хранимую пару значений. |
Замечания
Объект сохраняет пару значений. Этот класс шаблона используется для объединения двух значений в один объект. Кроме того, объект cliext::pair (описанный здесь) сохраняет только управляемые типы; для хранения пары неуправляемых типов, std::pairобъявленных в <utility>.
pair::first
Первое завернутое значение.
Синтаксис
Value1 first;
Замечания
Объект сохраняет первое завернутое значение.
Пример
// 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
Тип первого завернутого значения.
Синтаксис
typedef Value1 first_type;
Замечания
Этот тип является синонимом для параметра шаблона Value1.
Пример
// 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=
Заменяет хранимую пару значений.
Синтаксис
pair<Value1, Value2>% operator=(pair<Value1, Value2>% right);
Параметры
right
pair для копирования.
Замечания
Оператор-член копирует right в объект, а затем возвращает *this. Он используется для замены хранимой пары значений копией хранимой пары значений в right.
Пример
// 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
Формирует объект pair.
Синтаксис
pair();
pair(pair<Coll>% right);
pair(pair<Coll>^ right);
pair(Value1 val1, Value2 val2);
Параметры
right
pair для хранения.
val1
Первое значение для хранения.
val2
Второе значение для хранения.
Замечания
Конструктор:
pair();
инициализирует хранимую пару со значениями по умолчанию.
Конструктор:
pair(pair<Value1, Value2>% right);
инициализирует хранимую пару с right.first и right.second.
pair(pair<Value1, Value2>^ right);
инициализирует хранимую пару с right->first и right->second.
Конструктор:
pair(Value1 val1, Value2 val2);
инициализирует хранимую пару с val1 и val2.
Пример
// 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
Второе завернутое значение.
Синтаксис
Value2 second;
Замечания
Объект сохраняет второе завернутое значение.
Пример
// 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
Тип второго завернутого значения.
Синтаксис
typedef Value2 second_type;
Замечания
Этот тип является синонимом для параметра шаблона Value2.
Пример
// 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
Переключает содержимое двух pair объектов.
Синтаксис
void swap(pair<Value1, Value2>% right);
Параметры
right
pair для замены содержимого.
Замечания
Функция-член переключает хранимую пару значений между *this и right.
Пример
// 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 пары значений.
Синтаксис
template<typename Value1,
typename Value2>
pair<Value1, Value2> make_pair(Value1 first, Value2 second);
Параметры
Value1
Тип первого завернутого значения.
Value2
Тип второго завернутого значения.
first
Первое значение для упаковки.
second
Второе значение для упаковки.
Замечания
Шаблон функции возвращается pair<Value1, Value2>(first, second). Он используется для создания pair<Value1, Value2> объекта из пары значений.
Пример
// 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!= (пара)
pair не равное сравнение.
Синтаксис
template<typename Value1,
typename Value2>
bool operator!=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .!(left == right) Вы используете его для проверки того, не упорядочено ли left оно так же, как right и при сравнении двух pair объектов по элементу.
Пример
// 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 меньше сравнения.
Синтаксис
template<typename Value1,
typename Value2>
bool operator<(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .left.first < right.first || !(right.first < left.first && left.second < right.second Он используется для проверки того, left упорядочен ли он раньше right , когда два pair объекта сравниваются по элементу.
Пример
// 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 меньше или равное сравнение.
Синтаксис
template<typename Value1,
typename Value2>
bool operator<=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .!(right < left) Вы используете его для проверки того, не упорядочено right ли left после сравнения двух pair объектов по элементу.
Пример
// 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 равное сравнение.
Синтаксис
template<typename Value1,
typename Value2>
bool operator==(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .left.first == right.first && left.second == right.second Он используется для проверки left упорядочения того же, что right и при сравнении двух pair объектов по элементу.
Пример
// 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 больше, чем сравнение.
Синтаксис
template<typename Value1,
typename Value2>
bool operator>(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .right < left Он используется для проверки left порядка после right сравнения двух pair объектов по элементу.
Пример
// 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 больше или равное сравнение.
Синтаксис
template<typename Value1,
typename Value2>
bool operator>=(pair<Value1, Value2>% left,
pair<Value1, Value2>% right);
Параметры
left
Слева pair , чтобы сравнить.
right
Право pair сравнить.
Замечания
Функция оператора возвращает .!(left < right) Он используется для проверки того, left не упорядочен ли он раньше right , когда два pair объекта сравниваются по элементу.
Пример
// 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