Поделиться через


Класс tuple

Создает последовательность элементов фиксированной длины.

template<class T1, class T2, ..., class TN>
class tuple {
public:
    tuple();
    explicit tuple(P1, P2, ..., PN);              // 0 < N
    tuple(const tuple&);
    template <class U1, class U2, ..., class UN>
        tuple(const tuple<U1, U2, ..., UN>&);
    template <class U1, class U2>
        tuple(const pair<U1, U2>&);               // N == 2
    void swap(tuple& right);
    tuple& operator=(const tuple&);
    template <class U1, class U2, ..., class UN>
        tuple& operator=(const tuple<U1, U2, ..., UN>&);
    template <class U1, class U2>
        tuple& operator=(const pair<U1, U2>&);    // N == 2
    };

Параметры

  • TN
    Тип Nth элемента кортежа.

Заметки

Класс шаблона описание объекта, который хранит объекты N типов T1, T2,…, TN соответственно, где, 0 <= N <= Nmax. Область экземпляра tuple<T1, T2, ..., TN> кортежа число N аргументов шаблона. Индекс аргумента Ti шаблона и соответствующие сохраненного значения данного типа i - 1. Таким образом, а не типы число от 1 до N в данной документации, значения соответствующего индекса выстраиваем в диапазоне от 0 до N — 1.

Пример

// tuple.cpp
// compile with: /EHsc

#include <vector>
#include <iomanip>
#include <iostream>
#include <tuple>
#include <string>

using namespace std;

typedef tuple <int, double, string> ids;

void print_ids(const ids& i)
{
   cout << "( "
        << get<0>(i) << ", " 
        << get<1>(i) << ", " 
        << get<2>(i) << " )." << endl;
}

int main( )
{
   // Using the constructor to declare and initialize a tuple
   ids p1(10, 1.1e-2, "one");

   // Compare using the helper function to declare and initialize a tuple
   ids p2;
   p2 = make_tuple(10, 2.22e-1, "two");

   // Making a copy of a tuple
   ids p3(p1);

   cout.precision(3);
   cout << "The tuple p1 is: ( ";
   print_ids(p1);
   cout << "The tuple p2 is: ( ";
   print_ids(p2);
   cout << "The tuple p3 is: ( ";
   print_ids(p3);

   vector<ids> v;

   v.push_back(p1);
   v.push_back(p2);
   v.push_back(make_tuple(3, 3.3e-2, "three"));

   cout << "The tuples in the vector are" << endl;
   for(vector<ids>::const_iterator i = v.begin(); i != v.end(); ++i)
   {
      print_ids(*i);
   }
}
  

Требования

Заголовок:<tuple>

Пространство имен: std

См. также

Ссылки

<tuple>

Функция make_tuple