『私の最初の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;
}