Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: elcout en 26 Noviembre 2020, 20:46 pm



Título: ayuda con vectores
Publicado por: elcout en 26 Noviembre 2020, 20:46 pm
hola! estuve programando con vectores pero al momento de pasar un vector completo por una función me tira error... ojalá me pudieran orientar

Código
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int lugar;
  7.  
  8. void posicion();
  9.  
  10. int main(){
  11. string dato;
  12.  
  13. vector<string> nombre;
  14. vector<int> sueldo;
  15.  
  16.  
  17. nombre.push_back("pedro");
  18. sueldo.push_back(2000);
  19.  
  20. nombre.push_back("juan");
  21. sueldo.push_back(3000);
  22.  
  23. nombre.push_back("diego");
  24. sueldo.push_back(4000);
  25.  
  26. cout<<"ingrese dato a buscar: "; cin>>dato;
  27. posicion(dato,nombre);//aqui me tira error:(
  28. cout<<"el sueldo de "<<nombre[lugar]<<" es: "<<sueldo[lugar];
  29. }
  30.  
  31. void posicion(string dato, vector<string> parametro){
  32. for(int i=0;i<parametro.size();i++){
  33. if(dato==parametro[i]){
  34. cout<<i;
  35. lugar=i;
  36. }
  37. }
  38. }


Título: Re: ayuda con vectores
Publicado por: K-YreX en 26 Noviembre 2020, 21:19 pm
Esto es porque el prototipo de la función posicion() no tiene parámetros.
La función posicion(string, vector<string>) está implementada después de main() y no está definida antes por lo que no puedes utilizarla dentro del main().

EDIT: En vez de utilizar una variable global <lugar>, haz que la función posicion() devuelva la posición:
Código
  1. int posicion(string, vector<string>);