库及其应用

原创 2004年12月31日 18:19:00
<tuple>库及其应用

(Danny Kalev发表于2004-12-27 16:11:06)  

C++ 标准委员会正在进行标准库(Standard Library)的扩展工作。这个扩展包括一个新的tuple库。下面我将讨论这个库和它的应用。(目前标准库文件中还没有包含这个库,所以你需要从 Boost 下载它的源文件:http://sourceforge.net/project/showfiles.php?group_id=7586

1、何为 tuple?

Tuple 是一个大小固定的异构对象集合。Tuple 类型有很多有用的应用,比如封装一个函数的多个返回值以及模拟多个对象的同时赋值和比较。

Tuple 的大小是指它所包含的元素的个数。目前的 tuple 库支持 0-10 个元素的 tuple。每个元素可以是不同的类型。下面的例子创建一个具有两个元素(分别为 float 和 void *)和一个匹配初始化例程的 tuple。

#include <tuple>
tuple <float, void *> t(2.5, NULL);


如果忽略初始化例程,会使用默认的初始化过程:

tuple <double, string> t; //initialized to (0.0, string())

2、辅助函数

Tuple 库包括几个辅助函数,例如,make_tuple() 函数根据其参数实例化一个tuple类型:

voidfunc(int n);
make_tuple(func); // returns: tuple < void (*)(int) >
make_tuple("test", 9); // tuple < const char (&)[5], int >


tuple_size() 函数返回一个 tuple 的大小:

int n=tuple_size < tuple < int, string > >::value; // 2

tuple_element() 函数检索单个元素的类型。这个函数接收一个索引和 tuple 类型:

// get thefirst element's type, i.e., float
T=tuple_element < 0, tuple < float, int, char > >::type;


要访问元素本身,请使用 get() 函数模板。模板参数(也就是尖括号中括起来的参数)是元素的索引,圆括号中的参数是tuple类型:

tuple <int, double> tpl;
int n=get <0> (tpl); //read 1st element
get <1> (t)=9.5; //assign the 2nd element


3、应用

tuple 可以用来封装一个函数的多个返回值。例如:

typedeftuple < const char *, wchar_t* > mychar_t;
mychar_tmygetenv(const mychar_t &);

《线性代数及其应用》总结1 整体理解

一、矩阵和线性代数的关系 第一,众所周知,线性代数的一个问题是解线性方程组。矩阵是一种用来简化线性方程组表示的工具。 第二,矩阵可以表示一种线性映射,称为矩阵映射,写做T(x) = Ax,其中A是...
  • vincent_hbl
  • vincent_hbl
  • 2018年01月06日 19:54
  • 63

《线性代数及其应用》

【0】README0.1)以下内容转自: http://blog.csdn.net/ljbkiss/article/details/7194719【1】正文干货 1.1) 断断续续的终于把 《线性代...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2015年12月27日 17:26
  • 931

斯坦福大学公开课——傅里叶变换及其应用笔记

傅里叶变换是傅里叶级数的极限形式。 傅里叶级数是研究周期现象的(物理的),周期现象分为时间上的周期和空间上的周期,空间上的周期源于对称性。而有时候,这两种周期现象是共存的,比如:波。 ...
  • liminwang0311
  • liminwang0311
  • 2014年08月26日 23:14
  • 3267

〈灰色系统理论及其应用〉第7版,刘思峰 P153例7.3.1

%〈灰色系统理论及其应用〉第7版,刘思峰 P153例7.3.1clear all;clc;close all X0=[6,20,40,25,40,45,35,21,14,18,15.5,17,15];...
  • lishoubox
  • lishoubox
  • 2015年10月18日 16:51
  • 2100

求 人工智能及其应用 蔡自兴 徐光佑 版的

求 人工智能及其应用 蔡自兴 徐光佑 版的 邮箱604258506@qq.com  感谢!
  • donglipinglp
  • donglipinglp
  • 2010年03月21日 11:26
  • 478

中国开源云联盟《2016容器技术及其应用白皮书》

近日,中国开源云联盟发布国内首个容器白皮书《2016容器技术及其应用白皮书》,中国开源云联盟由英特尔、新浪网、中标软件和上海交大共同于2012年8月发起创立。2016年,在工业和信息化部信息化和软件服...
  • horsefoot
  • horsefoot
  • 2016年11月10日 18:51
  • 1131

随机过程及其在金融领域中的应用 第三章 习题 及 答案

随机过程及其在金融领域中的应用 第三章 习题 及 答案   本文地址: http://blog.csdn.net/caroline_wendy   包含: 1, 2, 5, 15;   第1题: 第...
  • u012515223
  • u012515223
  • 2013年11月22日 10:31
  • 4208

图遍历算法及其应用

图的遍历算法有两种:深度优先搜索和广度优先搜索 深度优先搜索算法所遵循的策略是尽可能“深”地搜索一个图,它的基本思想是首先访问图中某一个起始定点v,然后由v出发,访问与v邻接且为被访问的任一个顶点w...
  • wang_cheng_hei
  • wang_cheng_hei
  • 2014年03月03日 17:33
  • 862

第八章 多元函数微分法及其应用

第七讲  方向导数与梯度 教学目的 使学生理解方向导数与梯度的概念,掌握方向导数与梯度的计算. 教学重点 计算方向导数与梯度 教学难点 梯度与方向导数关系 教学时数 2学时 教学过程   ...
  • xiewenbo
  • xiewenbo
  • 2014年03月25日 14:49
  • 635

《复杂网络理论及应用》

1 基本概念1.1.1 聚类系数:某个顶点 i , 与之相连的三角形数量/与之相连的三元组的数量。 1.1.2 度及度的分布 完全随机网络的度的分布近似为Poisson分布。...
  • u011089523
  • u011089523
  • 2015年11月22日 10:18
  • 1911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:库及其应用
举报原因:
原因补充:

(最多只允许输入30个字)