Professional Documents
Culture Documents
Wektor jest obiektem, który zawiera w sobie tablicę. Wektor daje lepsze możliwości dostępu do
danych w tablicy i czyni ten dostęp bardziej bezpieczny. W przeciwieństwie do tablicy wektor jest
obiektem i dostarcza metod, które działają na tym obiekcie (wywołanie: wektor.metoda(), przykłady
poniżej).
Podobnie jak tablica, wektor zawiera dane określonego typu. Typ danych trzeba zadeklarować w
definicji wektora, np.:
vector<int> liczby;
vector<float> liczby;
vector<char> znaki;
vector<string> napisy;
W przeciwieństwie do tablicy rozmiar wektora może się zmieniać. Przykłady powyżej definiują puste
wektory o długości zero. Długość wektora i dane początkowe można ustalić w definicji, np.
vector<char> litery{ 'a', 'b', 'c' }; // trzy znaki 'a', 'b', 'c'
litery.push_back('d');
litery.clear();
zwraca pusty wektor. Metoda empty() zwraca true, jeśli wektor jest pusty.
W przeciwieństwie do tablicy, wektor „zna” swój rozmiar. Liczba elementów wektora zwracana jest
metodą size(). Np. litery.size() z przykładu powyżej zwraca 4.
Podobnie jak w tablicy, dostęp do elementów wektora możliwy jest przez indeks. Pierwszy element
wektora ma indeks zero. Każde wyrażenie, które daje wartość typu int może być użyte jako indeks,
np. dla wektora vector<int> liczby {0,1,2,3,4,5,6,7,8,9};
Podobnie jak w przypadku tablicy pętla for nadaje się dobrze do przejścia przez wszystkie elementy
wektora (iteracja), np.
for (int i = liczby.size(); i >= 0; i--)//??
{
cout << liczby [i] << endl; // albo liczby.at(i)
}
Wektory można używać jako argumenty funkcji. Male wektory przekazuje się przez kopie, np.
Duże wektory można przekazać przez referencję. Żeby uniknąć ewentualnej zmiany argumentu
wejściowego w funkcji, należy argument formalny zadeklarować jako const:
#include "iostream"
#include "vector"
#include "string"
using namespace std;
int main()
{
int rozmiar;
double suma = 0.0;
vector<double> liczby(rozmiar);
cout << "Napisz " << liczby.size() << " liczb oddzielajac je spacjami: ";
return 0;
}
Ćwiczenie: Dopisz pętle drukująca zawartość wektora używając
1. Metody dostępu at()
2. alternatywnej metody iteracji.
bool JestLiczbaPierwsza(int n)
{
if (n < 2)
return false;
else
{
bool wynik = true;
double r = n, root = sqrt(r);
for (int i = 2; wynik && i <= root; i++)
{
wynik = (n % i != 0);
}
return wynik;
}
}
int main(){
int min, max;
cout << "Program znajduje liczby pierwsze w podanym zakreis liczb." << endl;
cout << "Podaj namniejsza i najwieksza liczbe oddzielejac je spacja ";
cin >> min >> max;
return 0;
}
Ćwiczenie: Zamień w funkcji Drukuj sposób przekazywania wektora liczby „przez kopie” na „przez
referencje”.