ошибка компилятора при вызове функции, передающей вектор, за которой следуют 3 - PullRequest
0 голосов
/ 24 сентября 2018

Я не уверен, почему я получаю ошибку компилятора.Вот фрагмент моего кода

 vector<int> weights(m, 0);
  collect_weights(adjA, weights);
  /*******   Find the median of weights *********/
  int k = m >> 1;//divide by 2
  if(m % 2 == 0)
    k--;
  int median_weight = select(weights,0,m-1,k); //compiler error here

Вот мое объявление функции:

int select(vector<int> &v, int start, int fin, int k);

и вот моя ошибка компилятора:

cannot convert ‘std::vector<int>’ to ‘int’ for argument ‘1’ to ‘int select(int, fd_set*, fd_set*, fd_set*, timeval*)’
         int median_weight = select(weights, 0, m,k);

Кажется, в моей ошибке компилятораэтот select ожидает 5 аргументов, первый из которых - int, однако, исходя из объявления моей функции, их должно быть только 4 (первый из них - вектор целых).Есть ли что-то, что я упустил случайно?

Кстати, это работает, когда я вызываю select здесь:

int find_median = select(v, 0, v.size()-1, mid);

, где v - вектор целых чисел, которые я передаю в функцию

...