加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 我一直收到错误“不匹配调用”(std :: vector)(int)“

发布时间:2020-12-16 09:56:49 所属栏目:百科 来源:网络整理
导读:在阅读此问题之前请注意,这是hp代码战争(编程竞赛)的实践问题,我不是在问论坛有关真正的问题.我的程序应该采取以下输入: 一个代表罐子里糖果数量的数字 用户将进入的猜测数量 一个人的名字,然后是一个空格,然后是他们的猜测 例: 422:罐子里的糖果数量 2:
在阅读此问题之前请注意,这是hp代码战争(编程竞赛)的实践问题,我不是在问论坛有关真正的问题.我的程序应该采取以下输入:

>一个代表罐子里糖果数量的数字
>用户将进入的猜测数量
>一个人的名字,然后是一个空格,然后是他们的猜测

例:

> 422:罐子里的糖果数量
> 2:猜测数量
>乔324:猜测者的名字和他们猜测罐子里有多少糖果
>玛丽435:第二个猜测和猜测

输出应该是具有最接近猜测的人的姓名

例:

>玛丽

我目前正在编写函数,返回最接近猜测的数字.但是,当我运行代码时,它给出了两行错误调用'(std :: vector< int>)(int)的错误.发送错误的行在我的代码中的注释中指出.

这是我的代码:

vector<int> compare(vector<int> nums,int loopnum,int ans){
  vector<int> buff2;
  for (int i = 0; i<loopnum;i++){
      vector<int>diff;
      int buff = ans - nums.at(i);
      for (int j = 0; j<loopnum; j++){
         diff.push_back(buff);
         for (int k = 0; k<diff.size(); k++){
             if (k == 0){
                buff2.push_back(diff.at(k));
             }
             else{
                 // this line is sending back an error
                 if ((abs(buff2(0))) > abs(diff.at(k))) {
                     buff2.clear();
                     buff2.push_back(diff.at(k));
                 }
                 // this line is also sending back an error
                 else if ((abs(buff2(0))) == abs(diff.at(k))){
                     buff2.push_back(diff.at(k));
                 }
             }
         }
      }
  }
  return buff2;
}

请帮我解决这个问题!

解决方法

buff2(0)应该是buff2 [0]或buff2.at(0)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读