//将表示人的数据打包
struct Human
{
string strName;
unsigned int nAge;
double fWeight;
};
vector<Human> vecHuman;
一个vector容器保存多组数据的问题,但是也需要在代码中定义多个结构体,如果结构体过多,就会使得代码显得繁杂,STL中的tuple就解决这问题:
跟结构体可以打包多个数据类似,tuple也可以将多个有关联的数据类型打包到一起。
STL提供了get()函数和tie()函数来访问tuple数据组中的元素。
代码如下:
// k.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <tuple>
#include <vector>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
tuple<string, unsigned int, double> Zhouz;
Zhouz = make_tuple("zz", 24, 60.0);
//或者利用typedef来简化
typedef tuple<string, unsigned int, double> Human;
Human Yic("zz", 24, 60.0);
vector<Human> vecHuman;
vecHuman.push_back(Zhouz);
vecHuman.push_back(Yic);
//获取tuple数据组变量zhouz中的第一个数据名字
cout<<"姓名:"<<get<0>(Zhouz)<<endl;
get<1>(Zhouz) += 1;
cout<<"年龄:"<<get<1>(Zhouz)<<endl;
cout<<"体重:"<<get<2>(Zhouz)<<endl;
return 0;
}