`
javasogo
  • 浏览: 1817417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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 转载请注明出处

分享到:
评论

相关推荐

    类似Boost中Tuple的实现

    Boost库中的`Tuple`是C++社区广泛使用的工具,因为它提供了灵活且类型安全的方式来组合和传递多个值。本篇文章将探讨如何实现一个类似于Boost的`Tuple`功能,并介绍与之相关的编程知识点。 首先,`Tuple`的基本概念...

    HALCON算子函数Chapter 18: Tuple.doc

    HALCON 算子函數 Tuple HALCON 算子函數是一個功能強大且灵活的图像处理系統,Tuple 是 HALCON 算子函數的一個重要组成部分。本章節將詳細介紹 Tuple 的各种算子函數。 Arithmetic Operations: 1. tuple_abs:計...

    打印输出任意tuple

    在C++编程中,`tuple`是一个非常有用的容器,它能存储不同类型的数据,并且提供了灵活的访问和操作方式。在C++11标准中,`tuple`被引入,为程序员提供了一种强大的元组类型,可以存储多个不同类型的值。本篇文章将...

    THE BOOST C++ LIBRARIES

    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

    BOOST学习资料整理收集

    4. **标准化推动者**:许多Boost库如`shared_ptr`、`unique_ptr`、`tuple`、`lambda`等已进入C++11标准库。 二、Boost库的主要组件: 1. **Boost.And.STL学习资料**:这是一份关于如何结合使用Boost库和STL...

    tuple_utility, 缺少的C++ tuple 功能.zip

    tuple_utility, 缺少的C++ tuple 功能 tuple_utilityC++ 元组的实用工具。tuple_map:#include"tuple_utility.hpp"int main(){ auto t = std::make_tuple(0, 1

    boost程序库导论

    - **Tuple**:固定大小的复合类型,可以存储不同类型的数据成员。 ### 函数对象与高级编程 这部分讨论了Boost中用于支持函数式编程和高级编程模式的库。 - **Bind**:用于创建可调用对象,这些对象可以绑定到特定...

    C++ Boost 库中文文档

    2. **标准库前驱**:许多Boost库已被采纳进入C++标准库,如`shared_ptr`、`unique_ptr`、`variant`和`tuple`等。 3. **跨平台**:Boost库在多种操作系统和编译器上都能良好运行,包括Windows、Linux、Mac OS X等。 4...

    tuple_sort.py

    tuple中元素值排序,取top3 ("测试", (("张三", 5), ("李四", 1), ("王五", 9), ("马六", 6), ("田七", 13), ("赵八", 12))) 结果 ('测试', [('田七', 13), ('赵八', 12), ('王五', 9)])

    介绍Boost libraries: C++编程的下一个突破

    7. Tuple:元组库允许程序员创建和操作固定大小的、异质的值集合。这在函数返回多个值时特别有用,省去了定义结构体或类的麻烦。 Boost库的其他部分还包括对数据结构、容器、迭代器、算法、函数对象、泛型编程、...

    python中的list、tuple、set、dict用法简析.doc

    Python 中的 List、Tuple、Set、Dict 用法简析 Python 是一种高级的编程语言,它提供了多种数据结构,包括列表(List)、元组(Tuple)、集合(Set)和字典(Dict)。这些数据结构可以用来存储和处理数据,本文将...

    boost_1_34_0的包含文件(boost目录下的全部文件)

    Boost库的核心目标是推动C++标准的发展,并且很多Boost库最终被纳入到了C++标准库中,例如`shared_ptr`、`unique_ptr`、`bind`、`lambda`、`variant`和`tuple`等。下面将详细探讨一些在`boost_1_34_0`中重要的库和...

    C++准标准库Boost介绍

    Array(固定大小数组),Compressed_pair(压缩对),Dynamic_bitset(动态位集),Graph(图算法),Iterator(迭代器工具),MultiArray(多维数组),Multi-index(多索引容器),Range(范围操作),Tuple(元组...

    没有boost命名空间的Boost.PFR.zip

    这个库在早期的版本中, Boost 库包含了它,但后来为了保持 Boost 的精简和避免命名空间冲突,Boost.PFR被移出,不再在boost命名空间下使用。因此,我们有了“没有boost命名空间的Boost.PFR”。 Boost.PFR库的核心...

    Boost 库中文版

    2. **容器**(Containers):如`multi_array`提供多维数组,`fusion`则与C++11的`std::tuple`类似,但提供了更丰富的操作。 3. **算法**(Algorithms):Boost提供了一套扩展的算法库,如`assign`用于快速填充容器...

    SAP MDM Tuple表内的lookup字段无法显示名称

    SAP MDM Tuple表内的lookup字段无法显示名称

    Boost C++ 库 简介(中文)

    由于Boost库的广泛采用,许多优秀的实现已被采纳进入C++标准库,例如`smart_ptr`、`tuple`和`regex`。 总的来说,Boost C++库是C++程序员的强大工具箱,无论是开发大型企业级应用还是进行研究项目,都能从中受益。...

    boost_1_75_0.tar.gz

    6. **容器和泛型编程**(Containers and Generic Programming):如`multi_array`用于多维数组操作,`tuple`提供类似元组的数据结构,`mpl`则提供了元编程库。 7. **日志库**(Logging):提供了灵活的日志记录框架...

Global site tag (gtag.js) - Google Analytics