Eaco1412 2022-02-16 10:21 采纳率: 100%
浏览 73
已结题

报错说没有匹配的min(),但是把参数单独定义一下又没问题了,这是为什么?

用下列代码解决541. 反转字符串 II

string reverseStr(string s, int k) {
    for(int i=0;i<s.size();i+=2*k){
        reverse(s.begin()+i,s.begin()+min(i+k,s.size()));
    }
    return s;
}

报错说找不到min()方法:

Line 5: Char 43: error: no matching function for call to 'min'
            reverse(s.begin()+i,s.begin()+min(i+k,s.size()));
                                          ^~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/algorithmfwd.h:383:5: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('int' vs. 'unsigned long')
    min(const _Tp&, const _Tp&);
    ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:3450:5: note: candidate template ignored: could not match 'initializer_list<type-parameter-0-0>' against 'int'
    min(initializer_list<_Tp> __l, _Compare __comp)
    ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_algo.h:3444:5: note: candidate function template not viable: requires single argument '__l', but 2 arguments were provided
    min(initializer_list<_Tp> __l)
    ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/algorithmfwd.h:388:5: note: candidate function template not viable: requires 3 arguments, but 2 were provided
    min(const _Tp&, const _Tp&, _Compare);
    ^
1 error generated.

但是把s.size()单独dia出来定义一个参数就好了。

string reverseStr(string s, int k) {
    int n=s.size();
    for(int i=0;i<s.size();i+=2*k){
        reverse(s.begin()+i,s.begin()+min(i+k,n));
    }
    return s;
}

这是为什么?

  • 写回答

6条回答 默认 最新

  • togolife 2022-02-16 11:05
    关注

    min比较的类型要一致
    min(i+k,s.size())) --> i +k 为int, s.size()为unsigned long
    改成下面这种
    min(i+k,n) -->类型匹配了,就没问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 2月27日
  • 已采纳回答 2月19日
  • 修改了问题 2月19日
  • 赞助了问题酬金5元 2月16日
  • 展开全部

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改