Jak przekazać vector wygenerowany w jednej funkcji do drugiej funkcji?

0

Dzień dobry. Chciałbym zapytać, jak w takim kodzie, jak poniżej przekazać wygenerowany vector z funkcji generuj() do funkcji print. Nie mam zielonego pojęcia, jak to zrobić i bardzo proszę o pomoc.


#include "pch.h"
#include<array>
#include<iostream>
#include<vector>


using namespace std;
//funkcje do programow

void generuj(vector<int> v)
{
	int liczby;
	cout << "Podaj ile chcesz wygenerowac liczb: ";
	cin >> liczby;
	for (int i = 0; i < liczby; i++)
	{
		v.push_back(i);

	}
}

void print(vector<int> v)
{	
	generuj(v);
	

	cout << "[";
	for (int i = 0; i < v[i]; i++)
	{
		v.push_back(i);
		cout << v[i]<< ", ";
	}
	cout << "]";
	cout << endl;

void zadanie2()
{
	vector<int> v;
		print(v);


}

}

int main()
{
	
	zadanie2();
	
}


0

Instrukcją return. Funkcja musi deklarować zwracany typ. Poczytaj o funkcjach w Twoim podręczniku/tutorialu/książce.

2

Trzymając się Twojego sposobu pisania można to osiągnąć np.:

#include <iostream>
#include <vector>

using namespace std;

vector<int> generate()
{
    vector<int> v;
    int liczby;
    cout << "Podaj ile chcesz wygenerowac liczb: ";
    cin >> liczby;
    for (int i = 0; i < liczby; i++)
    {
        v.push_back(i);
    }
    return v;
}

void print(vector<int> v)
{
    cout << "[";
    for (unsigned int i = 0; i < v.size(); i++)
    {
        cout << v[i] << (i == v.size()-1 ? "" : ",");
    }
    cout << "]";
    cout << endl;
}

void zadanie2()
{
    vector<int> v = generate();
    print(v);
}

int main(void)
{
    zadanie2();

    return EXIT_SUCCESS;
}

Pozdrawiam.

0

Dziękuje pięknie i gorąco pozdrawiam :)

0

Ponieważ przekazanie parametru jest przez wartość zmiany zostaną utracone.
Powinno być przez referencję gdy w nim zmieniamy (koniecznie) i const referencję gdy np drukujemy (to drugie dla oszczędności)

To nie Java czy C# gdzie wszystko ponad typy proste jest przez referencję.

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