更好的阅读体验
打比赛的时候我们经常会遇到一些多组样例的情况,通常情况下我们都是这么做的:
int t;
cin>>t;
while(t--) {
solve();
}
但是很多时候我们并不需要知道 t t t 是多少,他在我们眼里就是个 无用 的变量,但是很多时候又不得不定义,就很烦。
直到今天,我终于找到一个非常骚的操作,记录于此
#include<bits/stdc++.h>
using namespace std;
struct MultiCase {
int t = 0;
MultiCase() {
cin>>t;
}
operator int() {
return t;
}
const int operator--(int) {
return t--;
}
} $;
int main() {
while($--) {
cout<<1<<endl;
}
return 0;
}
这个struct重载了两个函数,operator int() 将这个struct转换成了一个int并返回,operator–可以将struct–。并返回剩下的case数量。
然后就可以愉快的直接–了。