微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在C ++中的min函数中使用size会产生错误?

如何解决为什么在C ++中的min函数中使用size会产生错误?

    int var = 20;
    vector<string> A{"anything here","random words"};
    for(int i = 0;i<A.size();i++)
        m=min(var,A[i].size());  

    // rest of the code here
    //assume proper headers were included

第4行给出了一个错误:没有匹配的函数可以调用'min(int&,std :: __ cxx11 :: basic_string :: size_type)'

解决方法

您尝试比较不同的类型。大小产生size_t类型(通常为unsigned long long)。您可以简单地更改var的类型:

string::size_type var = 20;

应该可以解决问题。

与for循环中的i相同:

for (string::size_type i = 0; i < A.size(); i++)
,

更好的代码

size_t var = 20;
vector<string> A{"anything here","random words"};
for (size_t i = 0; i < A.size(); i++)
    m = min(var,A[i].size());

vari的类型应为size_t,因为它们正在与类型为A.size()的{​​{1}}进行比较。大概size_t也应该如此。

要回答这个问题,m(和std::min)两个参数都需要相同的类型。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。