【发布时间】:2011-06-01 11:43:13
【问题描述】:
我正在尝试实现一个向量,如 vector >day;我想访问元组的第一个元素来检查条件。 有人可以告诉我该怎么做吗?我是新手。 提前致谢。
【问题讨论】:
我正在尝试实现一个向量,如 vector >day;我想访问元组的第一个元素来检查条件。 有人可以告诉我该怎么做吗?我是新手。 提前致谢。
【问题讨论】:
#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;
}
【讨论】:
make_tuple 只是创建元组的辅助函数。
v[0].get<n>() 替换为boost::get<n>(v[0])
第一个元组有一组类型:
编辑(修正了你的帖子)但在这里使用抽象类型来演示它如何更好地工作。
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>();
【讨论】:
get<0>,get<1>,get<2>吗?