『私の最初のc++本』学習ノート:STLのtuple

1219 ワード

//         
struct Human
{
	string strName;
	unsigned int nAge;
	double fWeight;

};

vector<Human> vecHuman;

1つの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;
}