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 转载请注明出处
@IS2120#CNBLOGS.T2169364049[T1,L65,R1,V259]:备忘
$ € ₤ ₭ ₪ ₩ ₮ ₦ ₱ ฿ ₡ ₫ ﷼ ¥ ﷼ ₫ ₡ ฿ ₱ ₦ ₮ ₩ ₪ ₭ ₤ € $