Вектори

 Стандардната библиотека на шаблони (STL - Standard Template Library) претставува множество од структури и алгоритми кои може да вршат операции над различни типови на податоци.


Контејнерите претставуваат структури на податоци во кои може да се чуваат разни информации. Сите контејнери кои се дел од Стандардната библиотека на шаблони се имплементирани како параметаризирани структури. Ова значи дека еден контејнер може да служи за чување на податоци од кој било тип (int, float, double, string, vector<int>, vector<float>, vector<vector<float> >, итн). 
Контејнер во C++ е објект кој се користи за складирање на збирки на други објекти. Тие се имплементирани како шаблони за класи што значи дека овие контејнери може да складираат било кој тип на податоци
За да може да користиме контејнер вектор, потребно е да ја вклучиме датотеката во која е тој дефиниран - наредба #include <vector>.
 
Итераторите претставуваат еден вид покажувачи кон елементите од контејнерите. Итераторите се користат за движење низ елементите од еден контејнер, како и за означување на делови од податоци врз кои сакаме да вршиме операции. 

Алгоритмите служат за вршење на операции врз податоци (подредување, пронаоѓање на најголема вредност, итн.). Потребно е вклучување на соодветната датотека во која е дефинирана функцијата која ќе се користи (#include <algorithm>)

Контејнери 

Вектори 

Векторите во C ++ се динамички низи што се користат за складирање на податоци. За разлика од низите, кои се користат за складирање на последователни податоци и имаат статична природа, векторите обезбедуваат поголема флексибилност на програмата - можат автоматски да ја менуваат големината кога некој елемент се вметнува или брише.

Синтакса

vector< object_type >  variable_name;

Задолжително е да се одреди типот и името на променливата. 
Пример vector <int > a;
За да може да користиме вектор, потребно е да вклучиме со директивата  #include <vector>

Методи

push_back 
- додавање елемент на крај на вектор
a.push_back(13);

ime_na_ vector .size - одредување големина на вектор / број на елементи
vector < int > b={10,20,30,40,50};
cout << "Vektorot ima " << b.size() << " elemenati" << endl;

ime_na_ vector .front - прв елемент на вектор vector < int > grupa={"Mira","Pero","Goran","Natasa"};
cout << "Prv vo grupata e " << grupa.front() << endl;
output: Mira

ime_na_ vector .back - пoследен елемент на вектор 
vector < int > grupa={"Mira","Pero","Goran","Natasa"};
cout << "Posleden vo grupata e " << grupa.back() << endl;
output: Natasa

ime_na_ vector .pop_back
 - бришење на последниот елемент во векторот 
vector < double > temperature={23.2 , 25.8 , 11, 15.3, 17};
temperature.pop_back();
output:23.2, 25.8, 11, 15.3

ime_na_ vector .erase - бришење на елемент на одредена позиција во векторот 
vector < int > c={2,3,4};
c.erase(c.begin() + 1); //go brise elementot na pozicija 1 vo vektorot

ime_na_ vector .clear - бришење на сите елементи 
vector < int > c={2,3,4};
c.clear();//brisenje na site elementi vo vektorot, posle ova toj e prazen


Следнава програма креира празен вектор, додава неколку елементи (од тип string) во векторот и, на крај, ја печати неговата содржина.

#include <iostream>
#include <vector>
#include <string>
using namespace std;
 
int main()
{
      vector<string> zborovi;
       
      zborovi.push_back("Ucime ");
      zborovi.push_back("programski ");
      zborovi.push_back("jazik ");
      zborovi.push_back("C++");
       
      for (int i=0; i<zborovi.size(); i++)
            cout << zborovi[i] << " ";        
       
      return 0;
}
Разгледај го и објасни го следниов пример 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main()
{
      vector<int> v;
       
      for (int i=1; i<=10; i++)
            v.push_back((i*i*i) % 10);
      for (int i=0; i<10; i++)
      cout<<v[i]<<" ";
        //podredi gi broevite
      sort(v.begin(), v.end());
       cout<<endl;
      for (int i=0; i<v.size(); i++)
            cout << v[i] << " ";                
        return 0;
}
Output:
????

Што ќе се прикаже по извршување на следнава програма 
#include <iostream>
#include <vector>
using namespace std;
int main(){
 //Inicijalizirame vektor so 4-ri celobrojni vrednosti
 vector<int> v(4);
 //Gi inicijalizirame vrednostite
 v[0]=100;
 v[1]=200;
 v[2]=300;
 v[3]=400;
 //metodata push_back pravi dodavanje elementi, prosiruvanje na prostorot na vektorot 
 v.push_back(10);
 v.push_back(20);
 v.push_back(30);
 v.push_back(40);
 v.push_back(50);
 for(int i=0;i<v.size();i++)
 cout<<i<<" - ti element: "<<v[i]<<endl;
 return 0;

}

Собирање на елементите на два вектори 
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
 vector<int> v,v1,v2;
 int x,n,i;
 cout<<"vnesi broj na elementi na vektorite ";
 cin>>n;
 cout<<"vnesi elementi na prviot vektor "<<endl;
 for (int i=0; i<n; i++)
 {
 cout<<"vnesi element ";
 cin>>x;
 v.push_back(x);
 }
cout<<"vnesi elementi na vtoriot vektor "<<endl;
 for (int i=0; i<n; i++)
 {
 cout<<"vnesi element ";
 cin>>x;
 v1.push_back(x);
 }
for (int i=0; i<n; i++)
 {
 v2.push_back(v[i]+v1[i]);
 }
 for (int i=0; i<v2.size(); i++)
 cout << v2[i] << " ";
 return 0;
}


No comments: