boost tuple笔记(待续)

tuple

 

//z 2011-06-18 22:35:34@is2120.CSDN 转载请注明出处
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:34@is2120.CSDN 转载请注明出处
#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:34@is2120.CSDN 转载请注明出处

posted @ 2011-06-18 22:38  BiG5  阅读(128)  评论(0编辑  收藏  举报