今天气死我了,以前从来没出过问题的写法今天在CF
全炸了,蒟蒻不是很能理解
第一次:
(v 是一个空的vector)
int x=v.size()-1;
std::cout<<x<<'\n';
输出-1
long long x=v.size()-1;
std::cout<<x<<'\n';
输出4294967295
本地还是输出-1(本地是linux)
第二次:
#define sz(v) (int)v.size()
int i;
for(int i=0;i<sz(V);++i)ans+=V[i];
WA on 64调了2h没调出来,后来某神仙来改成
#define sz(v) (int)v.size()
int i;
for(i=0;i<sz(V);++i)ans+=V[i];
就AC了?!
所以上面两种写法到底是我UB了还是CF编译器不太一样?我选的语言是C++11。C++14,17也都试过了。本地实测CF出了问题的写法都没问题。
蒟蒻求解