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 转载请注明出处
分享到:
相关推荐
Boost库中的`Tuple`是C++社区广泛使用的工具,因为它提供了灵活且类型安全的方式来组合和传递多个值。本篇文章将探讨如何实现一个类似于Boost的`Tuple`功能,并介绍与之相关的编程知识点。 首先,`Tuple`的基本概念...
HALCON 算子函數 Tuple HALCON 算子函數是一個功能強大且灵活的图像处理系統,Tuple 是 HALCON 算子函數的一個重要组成部分。本章節將詳細介紹 Tuple 的各种算子函數。 Arithmetic Operations: 1. tuple_abs:計...
在C++编程中,`tuple`是一个非常有用的容器,它能存储不同类型的数据,并且提供了灵活的访问和操作方式。在C++11标准中,`tuple`被引入,为程序员提供了一种强大的元组类型,可以存储多个不同类型的值。本篇文章将...
THE BOOST C++ LIBRARIES是一份...14.2 Boost.Tuple 14.3 Boost.Any 14.4 Boost.Variant 14.5 Exercises Chapter 15: Error Handling 15.1 General 15.2 Boost.System 15.3 Boost.Exception Chapter 16: Cast Operators
4. **标准化推动者**:许多Boost库如`shared_ptr`、`unique_ptr`、`tuple`、`lambda`等已进入C++11标准库。 二、Boost库的主要组件: 1. **Boost.And.STL学习资料**:这是一份关于如何结合使用Boost库和STL...
tuple_utility, 缺少的C++ tuple 功能 tuple_utilityC++ 元组的实用工具。tuple_map:#include"tuple_utility.hpp"int main(){ auto t = std::make_tuple(0, 1
- **Tuple**:固定大小的复合类型,可以存储不同类型的数据成员。 ### 函数对象与高级编程 这部分讨论了Boost中用于支持函数式编程和高级编程模式的库。 - **Bind**:用于创建可调用对象,这些对象可以绑定到特定...
2. **标准库前驱**:许多Boost库已被采纳进入C++标准库,如`shared_ptr`、`unique_ptr`、`variant`和`tuple`等。 3. **跨平台**:Boost库在多种操作系统和编译器上都能良好运行,包括Windows、Linux、Mac OS X等。 4...
tuple中元素值排序,取top3 ("测试", (("张三", 5), ("李四", 1), ("王五", 9), ("马六", 6), ("田七", 13), ("赵八", 12))) 结果 ('测试', [('田七', 13), ('赵八', 12), ('王五', 9)])
7. Tuple:元组库允许程序员创建和操作固定大小的、异质的值集合。这在函数返回多个值时特别有用,省去了定义结构体或类的麻烦。 Boost库的其他部分还包括对数据结构、容器、迭代器、算法、函数对象、泛型编程、...
Python 中的 List、Tuple、Set、Dict 用法简析 Python 是一种高级的编程语言,它提供了多种数据结构,包括列表(List)、元组(Tuple)、集合(Set)和字典(Dict)。这些数据结构可以用来存储和处理数据,本文将...
Boost库的核心目标是推动C++标准的发展,并且很多Boost库最终被纳入到了C++标准库中,例如`shared_ptr`、`unique_ptr`、`bind`、`lambda`、`variant`和`tuple`等。下面将详细探讨一些在`boost_1_34_0`中重要的库和...
Array(固定大小数组),Compressed_pair(压缩对),Dynamic_bitset(动态位集),Graph(图算法),Iterator(迭代器工具),MultiArray(多维数组),Multi-index(多索引容器),Range(范围操作),Tuple(元组...
这个库在早期的版本中, Boost 库包含了它,但后来为了保持 Boost 的精简和避免命名空间冲突,Boost.PFR被移出,不再在boost命名空间下使用。因此,我们有了“没有boost命名空间的Boost.PFR”。 Boost.PFR库的核心...
2. **容器**(Containers):如`multi_array`提供多维数组,`fusion`则与C++11的`std::tuple`类似,但提供了更丰富的操作。 3. **算法**(Algorithms):Boost提供了一套扩展的算法库,如`assign`用于快速填充容器...
SAP MDM Tuple表内的lookup字段无法显示名称
由于Boost库的广泛采用,许多优秀的实现已被采纳进入C++标准库,例如`smart_ptr`、`tuple`和`regex`。 总的来说,Boost C++库是C++程序员的强大工具箱,无论是开发大型企业级应用还是进行研究项目,都能从中受益。...
6. **容器和泛型编程**(Containers and Generic Programming):如`multi_array`用于多维数组操作,`tuple`提供类似元组的数据结构,`mpl`则提供了元编程库。 7. **日志库**(Logging):提供了灵活的日志记录框架...