发现一个牛客网在线笔试的一个bug。
今天用sort函数降序重排vectorv数组时,自己定义了一个比大函数(二元谓词)isgreater,把函数指针传给sort,发现编译不通过,但是本地ide却可以运行。
sort(v.begin(),v.end(),isgreater);
原因是,isgreater在某个函数库里面已经定义了,是一个模板函数,在线编程环境中,自己定义的isgreater并没有重载(或者叫覆盖吧)库里的isgreater,所以在线编程时,我们自定义的函数最好要避免与库里的函数重名,我们把自定义的isgreater改个名字,这时编译就通过了。
今天用sort函数降序重排vector
sort(v.begin(),v.end(),isgreater);
原因是,isgreater在某个函数库里面已经定义了,是一个模板函数,在线编程环境中,自己定义的isgreater并没有重载(或者叫覆盖吧)库里的isgreater,所以在线编程时,我们自定义的函数最好要避免与库里的函数重名,我们把自定义的isgreater改个名字,这时编译就通过了。
全部评论
这个不能算是牛客bug吧。。就是方法重载了。
相关推荐