доступ к членам boost :: tuple - PullRequest
       0

доступ к членам boost :: tuple

6 голосов
/ 30 декабря 2010

Я пытаюсь реализовать вектор, подобный vector > day; Я хочу получить доступ к первому элементу кортежа, чтобы проверить условие. Может кто-нибудь, пожалуйста, скажите мне, как это сделать? Я новичок для повышения. Заранее спасибо.

Ответы [ 2 ]

16 голосов
/ 30 декабря 2010
#include <boost/tuple/tuple.hpp>
#include <iostream>
#include <vector>

int main()
{
    std::vector< boost::tuple<int, int, int> > v;
    v.push_back(boost::make_tuple(1, 2, 3));
    std::cout << boost::get<0>(v[0]) << std::endl;
    std::cout << boost::get<1>(v[0]) << std::endl;
    std::cout << boost::get<2>(v[0]) << std::endl;
}
5 голосов
/ 30 декабря 2010

Первый набор имеет набор типов:
Редактировать (исправил ваш пост) Но используйте здесь абстрактный тип, чтобы продемонстрировать, как он работает лучше.

std::vector<boost::tuple<A, B, C> >   day;

// Load data into day;

Теперь вы можете извлечь эти части набораиспользуя метод get.

A&   aPart = day[0].get<0>();
B&   bPart = day[0].get<1>();
C&   cPart = day[0].get<2>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...