【发布时间】:2018-05-31 01:49:05
【问题描述】:
每次我使用 std::get 访问元组时,此代码都会更新元组的 rand() 值,但我希望它被修复(初始化一次)。为什么 std::get 的行为不符合我的预期?
#include <iostream>
#include <tuple>
std::tuple<int, int> test(int a)
{
return std::make_tuple(a, rand() % 100);
}
int main()
{
test(5);
for (int i = 0; i < 10; i++)
std::cout << std::get<1>(test(5)) << '\n';
std::cin.get();
}
【问题讨论】:
-
因为您每次都在一个新变量上调用
std::get。您希望test返回相同的值,还是希望您的循环每次都访问相同的值? -
每次访问相同的值
-
您需要使用相同的参数调用
test()并获取一次随机值,或者您需要循环打印相同的值?