przekazywanie wektora do funkcji

0

Nie mogę znaleźć błędu w deklaracji funkcji i wyrzuca cały czas błąd;
main.cpp

 
int main()
{
	liczba rozmiar;
	vector <liczba> wejsciowe;//wektor danych wejsciowych
	vector <liczba> wyjsiowee;//wektor danych wyjsciowych
	bool flag;

	flag=otworz("dane.txt" ,plik);//otwarcie pliku z danymi wejsciowymi
	if(flag)cout<<"plik otwarty\n";
	if(flag==false)"nie udalo sie otworzyc pliku  \n";

	pobierz_wiersz(&rozmiar,plik);
	kopiuj(wejsciowe,plik,rozmiar);


	    for( int i = 0; i < wejsciowe.size(); i++ )
	{
	    	liczba* akt=&wejsciowe[i];

	cout<<akt->wiersz<<" | "<<akt->liczba<<"\n";
	}
}

funkcje.h

 
void kopiuj(vector<liczba> &wejsciowe, fstream &plik,liczba rozmiar);

funkcje.cpp

 
void kopiuj(vector <liczba> &wejsciowe, fstream &plik,liczba rozmiar)
{
liczba wiersz;
for(int i=0;i<rozmiar.liczba;i++)
	{
	pobierz_wiersz(&wiersz,plik);
	wejsciowe.push_back(wiersz);
	}
}
0

a i błąd dla funkcje.h:
Multiple markers at this line
- variable or field ‘kopiuj’ declared void
- expected primary-expression before ‘>’
token
- ‘vector’ was not declared in this scope
- ‘wejsciowe’ was not declared in this scope
- expected primary-expression before ‘&’
token

0

Masz w tym kodzie nieźle namieszane...
Klasę std::vector tworzysz podając typ przechowywanej wartości np

std::vector< int > input;
std::vector< int > output;

W Twoim przypadku jeśli liczba nie jest Twoja klasą ( a z kodu który podałeś wnioskuje że nie jest ) to nie możesz czegoś takiego używać. Także tyle na początek poczytaj jakiś kurs to szybko zrozumiesz co zrobiłeś źle ;)
Nie wiem czy wkleiłeś cały kod czy nie ale jeśli jest to całość to na pewno przed main() brakuje Ci kilku linijek

#include <iostream>
#include <fstream>
#include <vector>
0

No faktycznie trochę za mało informacji dałem.
Wkleiłem fragmenty kodu liczba to jest moja klasa.

class liczba
{
public:
	int wiersz;
	int liczba;

};
 
0

Ok. Już pamiętam :D. biblioteki załączamy w pikach nagłówkowych.

0

Czemu:

Tomek93 napisał(a):
	    for( int i = 0; i < wejsciowe.size(); i++ )
	{
	    	liczba* akt=&wejsciowe[i];

	cout<<akt->wiersz<<" | "<<akt->liczba<<"\n";
	}

Zamiast po ludzku:

for(int i=0;i<wejsciowe.size();++i) cout<<wejsciowe[i].wiersz<<" | "<<wejsciowe[i].liczba<<endl;

?

1 użytkowników online, w tym zalogowanych: 0, gości: 1