Compartir vía


<cliext/utility> (STL/CLR)

Incluya el encabezado <cliext/utility> STL/CLR para definir la plantilla pair de clase y varias plantillas de función auxiliares.

Sintaxis

#include <cliext/utility>

Requisitos

Encabezado:<cliext/utility>

Espacio de nombres: cliext

Declaraciones

Clase Descripción
pair Pone un par de elementos en un contenedor.
Operator Descripción
operator== (par) pair igual comparación.
operator!= (par) pair no es igual a la comparación.
operator< (par) pair menor que la comparación.
operator<= (par) pair menor o igual que la comparación.
operator> (par) pair mayor que la comparación.
operator>= (par) pair mayor o igual que la comparación.
Función Descripción
make_pair Crea un pair a partir de un par de valores.

pair

La clase de plantilla describe un objeto que encapsula un par de valores.

Sintaxis

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

Parámetros

Value1
Tipo del primer valor encapsulado.

Value2
Tipo del segundo valor encapsulado.

Miembros

Definición de tipo Descripción
pair::first_type Tipo del primer valor encapsulado.
pair::second_type Tipo del segundo valor encapsulado.
Member (objeto) Descripción
pair::first Primer valor almacenado.
pair::second Segundo valor almacenado.
Función de miembro Descripción
pair::pair Construye un objeto pair.
pair::swap Intercambia el contenido de dos objetos pair.
Operator Descripción
pair::operator= Reemplaza el par de valores almacenado.

Comentarios

El objeto almacena un par de valores. Esta clase de plantilla se usa para combinar dos valores en un solo objeto. Además, el objeto cliext::pair (que se describe aquí) almacena solo tipos administrados. Para almacenar un par de tipos no administrados, use std::pair, declarado en <utility>.

pair::first

Primer valor encapsulado.

Sintaxis

Value1 first;

Comentarios

El objeto almacena el primer valor encapsulado.

Ejemplo

// 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

Tipo del primer valor encapsulado.

Sintaxis

typedef Value1 first_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla Value1.

Ejemplo

// 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=

Reemplaza el par de valores almacenado.

Sintaxis

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

Parámetros

right
pair para copiar.

Comentarios

El operador miembro copia right en el objeto y, a continuación, devuelve *this. Se usa para reemplazar el par almacenado de valores por una copia del par almacenado de valores en right.

Ejemplo

// 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

Construye un objeto pair.

Sintaxis

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

Parámetros

right
pair para almacenar.

val1
Primer valor que se almacena.

val2
Segundo valor que se almacena.

Comentarios

El constructor:

pair();

inicializa el par almacenado con valores construidos predeterminados.

El constructor:

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

inicializa el par almacenado con right.first y right.second.

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

inicializa el par almacenado con right->first y right->second.

El constructor:

pair(Value1 val1, Value2 val2);

inicializa el par almacenado con val1 y val2.

Ejemplo

// 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

Segundo valor encapsulado.

Sintaxis

Value2 second;

Comentarios

El objeto almacena el segundo valor encapsulado.

Ejemplo

// 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

Tipo del segundo valor encapsulado.

Sintaxis

typedef Value2 second_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla Value2.

Ejemplo

// 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

Intercambia el contenido de dos objetos pair.

Sintaxis

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

Parámetros

right
pair para intercambiar contenido con.

Comentarios

La función miembro intercambia el par almacenado de valores entre *this y right.

Ejemplo

// 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

Crea un pair a partir de un par de valores.

Sintaxis

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

Parámetros

Value1
Tipo del primer valor encapsulado.

Value2
Tipo del segundo valor encapsulado.

first
Primer valor que se encapsula.

second
Segundo valor que se encapsula.

Comentarios

La plantilla de función devuelve pair<Value1, Value2>(first, second). Se usa para construir un objeto pair<Value1, Value2> a partir de un par de valores.

Ejemplo

// 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!= (par)

pair no es igual a la comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve !(left == right). Se usa para probar si left no se ordena igual que right cuando los dos pair objetos se comparan por elemento.

Ejemplo

// 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 menor que la comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve left.first < right.first || !(right.first < left.first && left.second < right.second. Se usa para probar si left se ordena antes right cuando se comparan los dos pair objetos por elemento.

Ejemplo

// 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 menor o igual que la comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve !(right < left). Se usa para probar si left no se ordena después right de cuando los dos pair objetos se comparan por elemento.

Ejemplo

// 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 igual comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve left.first == right.first && left.second == right.second. Se usa para probar si left se ordena igual que right cuando los dos pair objetos se comparan por elemento.

Ejemplo

// 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 mayor que la comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve right < left. Se usa para probar si left se ordena después right de cuando los dos pair objetos se comparan elemento por elemento.

Ejemplo

// 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 mayor o igual que la comparación.

Sintaxis

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

Parámetros

left
Izquierda pair que se va a comparar.

right
Derecho pair a comparar.

Comentarios

La función de operador devuelve !(left < right). Se usa para probar si left no se ordena antes right cuando los dos pair objetos se comparan por elemento.

Ejemplo

// 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