C ,G 编译错误函数

C++, g++ compiling error function

本文关键字:错误 函数 编译      更新时间:2023-10-16

我无法完成这项工作,它不会被编译,我不知道错误在哪里。你能帮我吗?

我正在创建一个对向量为" n" int数字的程序。

这是代码:

#include <iostream>
#include <vector>

using namespace std;

void selection_sort(vector <int>& v){
  int last=v.size() -1;
  for(int i=0; i<last; ++i){
    int k = min(v, i, last);
    //Vector, position "i", and last vector position send to function

    swap(v[k],v[i]);//swap positions
  }

}

int min(const vector <int>& v, int left, int right){

这是终端的错误:

g++ -o sortinglearn.x sortinglearn.cc
sortinglearn.cc: In function ‘void selection_sort(std::vector<int>&)’:
sortinglearn.cc:14:27: error: no matching function for call to   
‘min(std::vector<int>&, int&, int&)’
     int k = min(v, i, last);
                           ^
In file included from /usr/include/c++/7/bits/char_traits.h:39:0,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/ostream:38,
                 from /usr/include/c++/7/iostream:39,
                 from sortinglearn.cc:1:
/usr/include/c++/7/bits/stl_algobase.h:195:5: note: candidate:    
template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)
     min(const _Tp& __a, const _Tp& __b)
     ^~~
/usr/include/c++/7/bits/stl_algobase.h:195:5: note:   template argument   
deduction/substitution failed:
sortinglearn.cc:14:27: note:   deduced conflicting types for parameter      
‘const _Tp’ (‘std::vector<int>’ and ‘int’)
     int k = min(v, i, last);

@quentin ty Mate!我已经以某种方式修复了它,在selection_sort之前宣布函数min