boost tuple笔记(待续)

tuple

//z 2011-06-18 22:35:[email protected] 转载请注明出处
1. 概述
定义了一个有固定数目元素的容器,每个元素类型可以不同。类似pair,只是里面的元素更多。
可以将pair可以看作tuple的特例,tuple是pair的泛化。
tuple已被收入 c++ 0x TR1草案。

2. 类摘要
template <class T0,...,class T9>
class tuple
{
public:
tuple();
tuple(T0 to,...);
tuple(const tuple<...>&);
tuple& operator=(const tuple&);
tuple& operator=(const std::pair&);

template <int N> T get();
};

3. 细节
示例:
typedef tuple<int,string> my_tuple;
typedef tuple<int,my_tuple1> my_tuple2;

为方便创建tuple对象,tuple提供了make_tuple()函数。

访问元素
tuple中的 get<>()成员函数访问内部的值。
BOOST_AUTO(t,make_tuple(1,"char[]",100.0));
assert(t.get<0>() == 1);
assert(t.get<2>()==100.0);
cout << t.get<1>();
cout << ++t.get<0>();

------------------------------------------------------------------
//z 2011-06-18 22:35:[email protected] 转载请注明出处
#include <cassert>
#include <string>
#include <boost/tuple/tuple.hpp>
#include <boost/tuple/tuple_comparison.hpp>

using namespace std;
using namespace boost;

int main()
{
typedef tuple<int ,double ,string > my_tuple;

my_tuple t1 = make_tuple(1 ,100.0 ,string("abc" ));
my_tuple t2 = make_tuple(1 ,200.0 ,string("def" ));
assert(t1<t2);

my_tuple t3(t2);
assert(t2==t3);

return 0 ;
}

//z 2011-06-18 22:35:[email protected] 转载请注明出处

你可能感兴趣的:(boost)