Вы находитесь на странице: 1из 21

ВЕКТОРИ ВО С++

МАРИЈА АНГЕЛОВСКА, СОФИЈА АНДОНОВСКА, ЕМИЛИЈА БЕЖОСКА, ЕВА КИТРОЗОСКА,


АЛЕКСАНДАР КОЛОСКИ, АНА МАРКОСКА, СТЕФАН ПАУНКОСКИ III-8
Што се вектори?

 Векторот е динамичка низа.


 Тој е еден од неколкуте податочни структури наречени container.
 Се користат за складирање на елементи од слични типови на податоци.
 Големината на векторот во споредба со низите може динамично да расте.
 За разлика од низите, кои се користат за складирање на последователни податоци и имаат статична природа,
векторите обезбедуваат поголема флексибилност на програмата - можат автоматски да ја менуваат
големината кога некој елемент се вметнува или брише.
 Односно, можеме да ја промениме големината на векторот за време на извршувањето на програмата
според нашите барања.
 Векторите се дел од Standard Template Library.
Големина на вектор

 Големината на векторот (бројот на елементи) може да ја специфицираме и при неговото креирање - со


наведување на бројот на елементи и нивната иницијална вредност: по името на променливата, во загради.
 Покрај ова, за време на извршување на програмата, со повикување на методот resize може да го зголемиме
или намалиме бројот на елементи во векторот.
 Доколку, како аргумент на resize, пратиме вредност која е поголема од тековниот број на елементи, тогаш на
крајот од векторот ќе се додадат нови елементи.
 Во спротивно, доколку како аргумент испратиме вредност која е помала од тековниот број на елементи, тогаш
од векторот ќе се избришат последните неколку елементи.
 Можеме да ги избришеме сите елементи од векторот (да ја поставиме неговата големина на 0) со повикување
на методот clear().
Вектор
Декларација на вектори

Задолжително е да се напише #include<vector> библиотеката пред да се користат вектори во C++.

Пр. vector< object_type > vector_variable_name;

Овде, типот на објектот (Object type) е типот на податоци на објектот како int, string, итн., проследен со името
на променливата.
За даден вектор сите елементи мора да припаѓаат на истиот тип.
На пример, еден не може да сочува податоци од двете форми int и char внатре во истиот вектор.
Функции поврзани со векторите:
Информативни
vector::front – Го враќа повикот на првиот елемент на векторот.

vector::back – Го враќа повикот на последниот елемент на векторот.

vector::size – Го враќа бројот на елементи во векторот.

vector::empty – Векторт нема елементи.

vector::capacity – Го враќа моментниот капацитет на векторот.


Функции поврзани со векторите:
Стандардни операции

vector::insert – Вметнува елементи во векторот, подоцна се преместуваат.

vector::push_back – Додава елемент на крајот на некој вектор, доделува меморија ако е потребно.

vector::erase – Ги бриши елементите од векторот, подоцна ги преместува долу.

vector::pop_back – Ги бриши последните елементи на векторот. Обично не ја намалува меморијата на


векторот.

vector::clear – Ги бриши сите елементи.


Функции поврзани со векторите:
Промена на големината на векторот

vector::reserve – Го променува капацитетот на векторот, ако е потребно.

vector::resize – Ја променува големината на векторот.


Функции поврзани со векторите:
Повторување

vector::begin – Го враќа итераторот на почетокот на векторот.

vector::end – Го враќа итераторот на крајот на векторот.


Пристап до елементите

 reference operator [x] – Враќа референца на елементот на позицијата „x“ во векторот

 at(x) – Враќа референца на елементот на позицијата „x“ во векторот

 front() – Враќа референца на првиот елемент во векторот

 back() – Враќа референца до последниот елемент во векторот

 data() – Враќа директен покажувач кон мемориската низа што се користи внатрешно од векторот
за складирање на неговите сопствени елементи.
Дизајн

 Векторската предлошка е дефинирана со <vector>.


 Како и сите останати компоненти на стандардната библиотека, тој се наоѓа во namespace std.
 Посредникот го следи однесувањето на C низата ( способен е за брз и случаен пристап), но со додатна
можност да може автоматски да се промени сам кога ќе биде внесен или избришан некој објект.
 Векторската предлошка може да биде забрзана со било кој тип којшто ги исполнува CopyConstructible и
Assignable побарувањата:
Дизајн

Каде T е тип кој се користи да ја го забрза векторот, t е вредност на T и u е вредност на (можна константа) T.
Употреба на вектори

C++ програма која содржи вектор мора да има: #include <vector>

Употребата на векторот е делкарирана со:

std::vector<T> instance;

каде „T“ е врста на податок во вектор, а „instance” е името на променливата во вектор. „T” може да биде било
која врста Assignable, вклучувајќи ги и корисничките дефинирани типови.
Алтернатива за чување објекти од типот Т е да се складираат објекти од типот T*. Тоа е корисно ако Т не е
пренослив или е „прескапо” за копирање.
Пример
Примери за програми со вектори
#include <iostream>
#include <vector>
usingnamespacestd;
intmain()
{
vector<int> v,v1,v2;
intx,n,i,y=0;
cout<<"vnesibrojnaocenki "<<endl;
cin>>n;
for (int i=0; i<n; i++)
{
cout<<"vnesiocenka "<<endl;
cin>>x;
v.push_back(x);
y+=x;
}
cout<<"prosekot e "<<(float)y/n;
return 0;
}
#include <iostream>
#include <vector>
А) 5 6 6 5
using namespace std; (Б) 6 6 6 6 6 5
int main () в) 5 5 5 5 5 6
{ Г) 5 6 5 6 6 5 6 5
Д) 6 5
vector < int >vektor (5, 6);
vektor.resize (6, 5);
for (int i = 0; i<vektor.size (); i++)
{
cout<<vektor[i] << " ";
}
return 0;
}
#include <iostream>
#include <vector> (А) a aa b b c
using namespace std; Б) a aaa b b c
int в) 4 a 7 b c
main () г) a aaa b bbbbbb c
{ д) c
vector<string>vektor(4, "a");
vektor.resize(7, "b");
vektor.pop_back();
vektor.push_back("c");
for(int i=1;i<vektor.size();i++)
cout<<vektor[i]<<" ";
return 0;
}
#include <iostream>
#include <vector>
#include<algorithm>
А) 0 1 3 5 7 9 11 13
using namespace std;
int
main () Б) 0 1 0 1 0 1 0 1 0 1
{ В) 0 2 2 4 6 10 16
vector<int>vektor={0, 1}; 26
int n; Г) 0 1 1 2 3 5 8 13
cout<<"vnesibrojnaelementi";
cin>>n;
for(int i=2;i<(n+2);i++)
{vektor.push_back(vektor[i-1]+vektor[i-2]);}
vektor.pop_back();
vektor.pop_back();
for(int i=0;i<vektor.size();i++)
cout<<vektor[i]<<" ";
return 0;
}
#include <iostream>
#include <vector>
#include<algorithm> А)1 8
using namespace std; Б) 1 5
int в) 1 1
main ()
г)1 2 3 4 5
{
д) 1 2 3 4 4
vector<int>vektor={1, 0, 6, 8, 2};
vector<int>::iterator it =
vektor.begin();
cout<< *it<<endl;
for(int i=2; i<=4; i++)
it++;
cout<<*it<<endl;
return 0;
}
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std; Одговор:
int 6
main ()
{
2
vector<int>vektor={6, 2, 8, 9, 0, 3, 4, 7}; 65890347
vector<int>::iterator it = vektor.begin(); 6 5 8 0 3 4 7 36
cout<<*it<<endl;
it++;
cout<<*it<<endl;
*it=5;
for(int i=0;i<vektor.size();i++)
cout<<vektor[i]<<" ";
cout<<endl;
vektor.erase(it+2);
vektor.push_back(36);
for(int i=0;i<vektor.size();i++)
cout<<vektor[i]<<" ";
return 0;
}
Програма со која
се собираат
елементите на два
вектора (c[i]=a[i]
+b[i]).

Вам также может понравиться