vector<> przesylanie do funkcji

0

napisalem prosty programik odwracajacy vector:


#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void odwroc(vector<int>&wektor,int left, int right)
{
    if(left>=right)
    {
        return;
    }
    else
    {
        swap(wektor[left],wektor[right]);
        odwroc(vector<int>&wektor,left+1,right-1); //w tym miejscu wywala error
    }
}

int main()
{
    vector <int> vec;

    for(int i=0;i<1000;i++)
        vec.push_back(i);

    odwroc(vec,0,vec.size()-1);
}

 

blad to
error expected primary-expression before '&' token

nie do konca lapie dlaczego wyrzuca tego errora moze ktos pomoze? chodzi o to ze brakuje jakigos znaku?

1

odwroc(wektor,left+1,right-1); //w tym miejscu wywala error
Nie możesz wpisywać typu zmiennej, tylko samą zmienną(znaczy się nazwę)

2

Funkcja odwroc przyjmuje referencję do std::vector<int>. Jej wywołanie to po prostu odwroc(wektor, ...), przecież właśnie tak zrobiłeś w main, dlaczego wewnątrz funkcji próbujesz inaczej?

Rekurencja w celu odwrócenia wektora to niecodzienny pomysł. Pamiętaj, że jest funkcja std::reverse, a std::vector ma iterator rbegin().

0

o zez w main napisalem dobrze a tu jakbym deklarowal funkcje - przestalem myslec XD problem rozwiazany

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