Vectorfunktioner
Du ska implementera funktionerna
// Vänd på en vektor. // Notera att den skickas som referens, // så du ska vända samma vektor som skickas in. void reverse(vector<int>& vec){ ... } // Välj ut vartannat element ur en vektor (första, tredje, osv) // och returnera en ny vektor med svaret. // Du får inte modifiera vektorn, trots att den skickas som referens. // Därför används "const" framför parametern. vector<int> vartannat(const vector<int>& vec){ ... } // Returnera det minsta värdet i en vektor. int minsta(const vector<int>& vec){ ... } // Returnera summan av elementen i en vektor. int summa(const vector<int>& sum){ ... } // Räkna antalet udda heltal, som dessutom befinner // sig på udda index (räknat noll-indexerat!) int veryOdd(const vector<int>& suchVector){ ... }
i C++ och skicka in dessa. Kattis kommer sedan testa att funktionerna beter sig korrekt.
Vektorerna som skickas in kan ha upp till och med $100\, 000$ element. Varje tal i vektorn är i intervallet $[-2000, 2000]$.
Exempel
// Skapa ny vektor med elementen 1, 1, 2, 5, 6, 0 vector<int> test = {1, 1, 2, 5, 6, 0}; reverse(test); => test ska nu vara {0, 6, 5, 2, 1, 1} vector<int> result = vartannat(test); => result ska innehålla {0, 5, 1} cout << minsta(test) << endl; => ska skriva ut det minsta talet, 0 cout << summa(test) << endl; => ska skriva ut summan, 15 cout << veryOdd(test) << endl; => ska skriva ut då endast det sista talet, 1 (på index 5) är udda och befinner sig på en udda position.
Obs: se till att du har rätt namn och parametrar på funktionerna du skickar in. Säkrast är att kopiera kodskelettet ovanför.