gpt4 book ai didi

c++ - 尝试创建可变参数 C++ 输入函数

转载 作者:行者123 更新时间:2023-12-01 23:22:00 24 4
gpt4 key购买 nike

最近我一直在做一些 CP 的事情,并对在 C++ 中使用 cin 感到厌倦。所以我想我至少可以创建一个更清晰的输入功能。

所以我被困在这里了。

#include <bits/stdc++.h>

using namespace std;

void read() {}

template <typename T, typename... Type>
void read(T var1, Type... var2) {
cin >> var1;
read(var2...);
}

int main () {
int x, y;
read(x, y);
cout << x << " " << y;
}

如果我输入如下内容:

2 3

它应该打印出这样的内容

2 3

相反,我总是收到一些以 1 开头,然后是一些随机数的内容

1 203354149

所以,我的问题是,C++ 中是否存在可变参数输入函数?如果存在,我该如何编写它?

最佳答案

问题是您的 read 参数是按值传递的,因此 main 中的变量永远不会被修改。您需要通过引用来获取参数。您还可以使用折叠表达式使读取更加清晰

template <typename... Ts>
void read(Ts & ...vs)
{
(std::cin >> ... >> vs);
}

demo


另外,请改掉使用以下代码的习惯

#include <bits/stdc++.h>  // bad
using namespace std; // bad

关于c++ - 尝试创建可变参数 C++ 输入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67962488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com