Estoy tratando de enviar un vector como argumento para una función y no puedo encontrar la manera de hacerlo funcionar. Intenté un montón de maneras diferentes, pero todas dan diferentes mensajes de error. Solo incluyo parte del código, ya que solo esta parte no funciona. (el vector "al azar" se llena de azar, pero ordenados, los valores entre 0 y 200)¿Cómo pasar un vector a una función?
Actualizado el código:
#include <iostream>
#include <ctime>
#include <algorithm>
#include <vector>
using namespace std;
int binarySearch(int first, int last, int search4, vector<int>& random);
int main()
{
vector<int> random(100);
int search4, found;
int first = 0;
int last = 99;
found = binarySearch(first, last, search4, random);
system("pause");
return(0);
}
int binarySearch(int first, int last, int search4, vector<int>& random)
{
do
{
int mid = (first + last)/2;
if (search4 > random[mid])
first = mid + 1;
else if (search4 < random[mid])
last = mid - 1;
else
return mid;
} while (first <= last);
return -(first + 1);
}
¿A qué te refieres con que no funciona? Por favor publique errores. –
En el código de actualizaciones: Los parámetros primero y último son ** valores ** del vector, no índices. ¡Usted nunca establece un valor para buscar (búsqueda4)! –
Usar 'using namespace std;' es una mala idea. [¿Por qué?] (Http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) – Tomask