首页 > 解决方案 > 除最后一行外,所有行都正常工作,表示没有运算符“+”与操作数匹配

问题描述

#include <iostream>
#include <vector>
#include <string>
std::string likes(const std::vector<std::string> &names)
{
if (names.size() == 0)
return "no one likes this";
else if (names.size() == 1)
return names[0] + " likes this";
else if (names.size() == 2)
return names[0] + " and " + names[1] + " like this";
else if (names.size() == 3)
return names[0] + ", " + names[1] + " and " + names[2] + " like this";
else if(names.size() > 3)
return names[0] + ", " + names[1] + " and " + (names.size()-2) + " others like this"; /*this line isn't working, i guess the problem is in names.size() */

最后一行导致我的应用程序无法运行,我已经尝试了所有可能的方法来解决这个问题,但没有任何帮助,你能帮忙吗?

标签: c++stringvectorbinary

解决方案


您不能将 str 与 int/float 连接起来

更正的代码:

#include <iostream>
#include <vector>
#include <string>
std::string likes(const std::vector<std::string> &names)
{
if (names.size() == 0)
return "no one likes this";
else if (names.size() == 1)
return names[0] + " likes this";
else if (names.size() == 2)
return names[0] + " and " + names[1] + " like this";
else if (names.size() == 3)
return names[0] + ", " + names[1] + " and " + names[2] + " like this";
else if(names.size() > 3)
return names[0] + ", " + names[1] + " and " + std::to_string(names.size()-2) + " others like this";

推荐阅读