Пространства имён
Варианты
Действия

std::pair::pair

Материал из cppreference.com
< cpp‎ | utility‎ | pair

 
 
 
std::pair
Функции-члены
pair::pair
pair::operator=
pair::swap
Функции, не являющиеся членами
make_pair
operator=
operator!=
operator<
operator<=
operator>
operator>=
std::swap
get(C++11)
Вспомогательные классы
Оригинал:
Helper classes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
tuple_size(C++11)
tuple_element(C++11)
 
pair();
constexpr pair();
(1) (до C++11)
(начиная с C++11)
pair( const T1& x, const T2& y );
(2)
template< class U1, class U2 >
pair( U1&& x, U2&& y );
(3) (начиная с C++11)
template< class U1, class U2 >
pair( const pair<U1,U2>& p );
(4)
template< class U1, class U2 >
pair( pair<U1,U2>&& p );
(5) (начиная с C++11)
template< class... Args1, class... Args2 >

pair( std::piecewise_construct_t,
      std::tuple<Args1...> first_args,

      std::tuple<Args2...> second_args );
(6) (начиная с C++11)
pair( const pair& p ) = default;
(7)
pair( pair&& p ) = default;
(8) (начиная с C++11)


Создает новую пару.
Оригинал:
Constructs a new pair.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
Конструктор по умолчанию. Цена инициализирует оба элемента пары, first и second.
Оригинал:
Default constructor. Value-initializes both elements of the pair, first and second.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
Инициализирует first с x и second с y.
Оригинал:
Initializes first with x and second with y.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
3)
Инициализирует first с std::forward<U1>(x) и second с std::forward<U2>(y).
Оригинал:
Initializes first with std::forward<U1>(x) and second with std::forward<U2>(y).
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
4)
Инициализирует first с p.first и second с p.second.
Оригинал:
Initializes first with p.first and second with p.second.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
5)
Инициализирует first с std::move<U1>(p.first) и second с std::move<U2>(p.second).
Оригинал:
Initializes first with std::move<U1>(p.first) and second with std::move<U2>(p.second).
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
6)
Нападающие элементов first_args в конструктор first и пересылает элементы second_args в конструктор second. Это единственный не-конструктор по умолчанию, который может быть использован для создания пары не копируемым неподвижными типа.
Оригинал:
Forwards the elements of first_args to the constructor of first and forwards the elements of second_args to the constructor of second. This is the only non-default constructor that can be used to create a pair of non-copyable non-movable types.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
7)
Копировать конструктор неявно генерируются.
Оригинал:
Copy constructor is implicitly generated.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
8)
Move конструктор неявно генерируются.
Оригинал:
Move constructor is implicitly generated.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Параметры

x -
значение для инициализации первый элемент этой пары
Оригинал:
value to initialize the first element of this pair
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
y -
значение для инициализации второй элемент этой пары
Оригинал:
value to initialize the second element of this pair
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
p -
пара значений используется для инициализации оба элемента этой пары
Оригинал:
pair of values used to initialize both elements of this pair
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
first_args -
кортеж из аргументов конструктора для инициализации первый элемент этой пары
Оригинал:
tuple of constructor arguments to initialize the first element of this pair
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
second_args -
кортеж из аргументов конструктора для инициализации второй элемент этой пары
Оригинал:
tuple of constructor arguments to initialize the second element of this pair
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Пример

#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';
}

Вывод:

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

[править] См. также

pair создает объект типа, определяемых типов аргументов
Оригинал:
creates a pair object of type, defined by the argument types
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]