-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dec10Tuples.cpp
49 lines (42 loc) · 1.55 KB
/
Dec10Tuples.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//home/tovantran/Ctest/Dec10Tuples.cpp --> 2015-12-14 by ./.tv owner: tovantran
#include <tuple>
#include <iostream>
#include <string>
#include <stdexcept>
std::tuple<double, char, std::string> get_student(int id)
{
if (id == 0) return std::make_tuple(3.8, 'A', "Lisa Simpson");
if (id == 1) return std::make_tuple(2.9, 'C', "Milhouse Van Houten");
if (id == 2) return std::make_tuple(1.7, 'D', "Ralph Wiggum");
if (id == 3) return std::make_tuple(1.2, 'F', "Tom Tran");
throw std::invalid_argument("id");
}
int main()
{
auto student0 = get_student(0);
std::cout << "ID: 0, "
<< "GPA: " << std::get<0>(student0) << ", "
<< "grade: " << std::get<1>(student0) << ", "
<< "name: " << std::get<2>(student0) << '\n';
auto student3 = get_student(3);
std::cout << "ID: 3, "
<< "GPA: " << std::get<0>(student3) << ", "
<< "grade: " << std::get<1>(student3) << ", "
<< "name: " << std::get<2>(student3) << '\n';
double gpa1;
char grade1;
std::string name1;
std::tie(gpa1, grade1, name1) = get_student(1);
std::cout << "ID: 1, "
<< "GPA: " << gpa1 << ", "
<< "grade: " << grade1 << ", "
<< "name: " << name1 << '\n';
double gpa3;
char grade3;
std::string name3;
std::tie(gpa3, grade3, name3) = get_student(3);
std::cout << "ID: 3, "
<< "GPA: " << gpa3 << ", "
<< "grade: " << grade3 << ", "
<< "name: " << name3 << '\n';
}