g++ 在ACM里的使用问题

在ACM里面使用G++提交的运行时间一般不到C++的50% 我想问用G++提交C++代码的时候有哪些地方是要修改的我好像听说用双精度输出的时候不能用%lf 要用%f那输入有类似的需要修改的么还有其他哪些地方需要注意的?
2026年09月24日 18:03
有2个网友回答
网友(1):

区别主要在于编译器的问题,因为他们编译器的实现机理不一样
对于我们编程者来说,需要注意的就一些小问题,主要还是靠你自己去不断的实验和积累

比如
64位整型
sort函数的cmp比较的参数写法
头文件如c++ iostream包括了stdio但是g++不包括要另外加
函数参数调用的顺序,一个左到右一个右到左(有可能结果不一样)
语法问题 g++更严格 比如for(int i)语句后下一个又出现for(int i)有一个报错一个不报,所以一般写int i;for(i)就两者通用。总之靠经验积累

对于运行时间问题,并不一定哪个就快。这也涉及到内部实现,所以如果一个超时你可以去尝试另外一个,但是一般时间差别不会超过多倍,会在一个数量级。所以时间主要还是看算法。

根据标准,double需要使用%lf读入,%f输出。%lf输出是非C标准里的内容,VC扩展出来的,使用了当然不能保证正确性。g++是按照标准实现的。

网友(2):

“双精度输出的时候不能用%lf 要用%f”这个我还真不知道,但是__int64要换成long long