Przestrzenie nazw
Warianty

std::pair::pair

Z cppreference.com
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>
(1)
pair();
(do C++11)
constexpr pair();
(od C++11)
(2)
pair( const T1& x, const T2& y );
(3)
template< class U1, class U2 > pair( U1&& x, U2&& y );
(od C++11)
(4)
template< class U1, class U2 > pair( const pair<U1, U2>& p );
(5)
template< class U1, class U2 > pair( pair<U1, U2>&& p );
(od C++11)
template< class... Args1, class... Args2 > pair( std::piecewise_construct_t, std::tuple<Args1...> first_args, std::tuple<Args2...> second_args );
(6) (od C++11)
pair( const pair& p ) = default;
(7)
pair( pair&& p ) = default;
(8) (od C++11)


Konstruuje nową parę.

1) Domyślny konstruktor. Inicjalizuje wartości(ang) obu elementów pary, first i second.

2) Inicjalizuje first wartością x i second wartością y.

3) Inicjalizuje first za pomocą std::forward<U1>(x) i second za pomocą std::forward<U2>(y).

  • Ten konstruktor bierze udział w rozwiązywaniu przeciążeń(ang) tylko, jeśli U1 jest jawnie konwertowalne do first_type oraz U2 jest jawnie konwertowalne second_type.

4) Inicjalizuje first wartością p.first i second wartością p.second.

5) Inicjalizuje first za pomocą std::forward<U1>(p.first) i second za pomocą std::forward<U2>(p.second).

6) Przekazuje elementy first_args do konstruktora first i przekazuje elementy second_args do konstruktora second. Jest to jedyny nie-domyślny konstruktor, który może zostać użyty do stworzenia pary elementów o niekopiowalnych i nieprzenaszalnych typach.

7) Konstruktor kopiujący jest domyślny, i jest constexpr jeśli kopiowanie obu elementów spełnia wymogi funkcji constexpr.

8) Konstruktor przenoszący jest domyślny, i jest constexpr jeśli przenoszenie obu elementów spełnia wymogi funkcji constexpr.

Parametry

x - wartość do zainicjalizowania pierwszego elementu pary
y - wartość do zainicjalizowania drugiego elementu pary
p - para wartości, użyta do zainicjalizowania wartości obu elementów tej pary
first_args - krotka argumentów konstruktora, do zainicjalizowania pierwszego elementu tej pary
second_args - krotka argumentów konstruktora, do zainicjalizowania drugiego elementu tej pary

Wyjątki

Nie wyrzuca wyjątków, o ile jedna z wykorzystywanych operacji (np. konstruktor kopiujący) nie wyrzuci wyjątku.

Przykład

#include <utility>
#include <string>
#include <complex>
#include <tuple>
#include <iostream>

int main()
{
    std::pair<int, float> p1;
    std::cout << "Value-initialized: "
              << p1.first << ", " << p1.second << '\n';

    std::pair<int, double> p2(42, 0.123);
    std::cout << "Initialized with two values: "
              << p2.first << ", " << p2.second << '\n';

    std::pair<char, int> p4(p2);
    std::cout << "Implicitly converted: "
              << p4.first << ", " << p4.second << '\n';

    std::pair<std::complex<double>, std::string> p6(
                    std::piecewise_construct, 
                    std::forward_as_tuple(0.123, 7.7),
                    std::forward_as_tuple(10, 'a'));
    std::cout << "Piecewise constructed: "
              << p6.first << ", " << p6.second << '\n';
}

Wynik:

Value-initialized: 0, 0
Initialized with two values: 42, 0.123
Implicitly converted: *, 0
Piecewise constructed: (0.123,7.7), aaaaaaaaaa

Zobacz także

tworzy obiekt pary pair, o typach elementów zdefiniowanych przez typy argumentów
(szablon funkcji) [edit]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.