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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
#include <tuple>
#include <vector>
#include <string>
// 数据库查询结果
std::tuple<int, std::string, std::string, double> GetEmployeeRecord(int id)
{
// 模拟数据库查询
return {id, "John Doe", "Software Engineer", 75000.0};
}
// 数学计算返回多个结果
std::tuple<double, double, double> SolveQuadratic(double a, double b, double c)
{
double discriminant = b * b - 4 * a * c;
if (discriminant < 0)
return {0, 0, discriminant}; // 无实数解
double sqrt_discriminant = std::sqrt(discriminant);
double x1 = (-b + sqrt_discriminant) / (2 * a);
double x2 = (-b - sqrt_discriminant) / (2 * a);
return {x1, x2, discriminant};
}
// 统计信息
std::tuple<size_t, double, double, double> CalculateStats(const std::vector<double>& data)
{
if (data.empty())
return {0, 0.0, 0.0, 0.0};
size_t count = data.size();
double sum = 0.0;
double min_val = data[0];
double max_val = data[0];
for (double value : data)
{
sum += value;
min_val = std::min(min_val, value);
max_val = std::max(max_val, value);
}
double average = sum / count;
return {count, average, min_val, max_val};
}
int main()
{
// 员工记录示例
auto [empId, empName, empPosition, empSalary] = GetEmployeeRecord(1001);
std::cout << "Employee " << empId << ": " << empName
<< " (" << empPosition << ") - $" << empSalary << std::endl;
// 二次方程求解
auto [x1, x2, discriminant] = SolveQuadratic(1, -5, 6);
if (discriminant >= 0)
{
std::cout << "Solutions: x1 = " << x1 << ", x2 = " << x2 << std::endl;
}
else
{
std::cout << "No real solutions" << std::endl;
}
// 统计信息
std::vector<double> numbers = {1.5, 2.8, 3.2, 1.9, 4.1, 2.3, 3.7};
auto [count, avg, minVal, maxVal] = CalculateStats(numbers);
std::cout << "Stats - Count: " << count << ", Average: " << avg
<< ", Min: " << minVal << ", Max: " << maxVal << std::endl;
}
|