3 Haziran 2016 Cuma

-C++ Vektör(vector) Kullanımı-


Merhabalar,

C++'da dinamik dizi kullanımı için "vector" sınıfı tercih edilebilir.
Bu sınıf her türden veri ya da nesne tutabilir. Ayrıca dinamik yapısı itibariyle
eleman eklendikçe otomatik olarak dizi boyutu büyür. Dolayısıyla C stili eski tip 
diziler yerine vector kullanmak iyi bir seçim olacaktır.
vector sınıfı içerisinde yer alan bazı fonksiyonlara aşağıda yer verilmişir.

-push_back() 
Veriyi dizinin sonuna ekler.

-pop_back()
Vektörün sahip olduğu son elemanı çıkarır.

-back()
vektörün son elemanını döndürür.

-swap()
Tüm vektör içeriğini başka bir vektöre aktarır.

-insert()
Vektör içine belirtilen bir konuma eleman ekler veya çıkarır.

-erase()
Vektör içinde belirtilen bir konumda bulunan elemanı çıkarır.

-size()
Vektör boyutunu döndürür.

-begin()
Vektör başlangıcını gösterir.

-end()
Vektör sonunu gösterir.

-clear()
Vektör içeriğini siler.


Vector sınıfını kullanabilmek için "using namespace std;" tanımlanmalıdır.
int türden bir vector dizi kullanımına aşağıda yer verilmiştir.

#include<bits/stdc++.h>
using namespace std;

int main() 
{
   vector<int> vect_array(10);//default olarak 10 eleman kapasiteli.
   for(unsigned i= 0; i<vect_array.size(); i++)
    {
      std::cout << " " << vect_array[i];
    } 
    return 0;
}
Çıktı:
 0 0 0 0 0 0 0 0 0 0


Vektör içeriğine tanımlama esnasında eleman ekleme:
int main() 
{
   vector<int> vect_array(10,5); //10 elemanlı dizi boyutu ve her eleman için 5 değeri.
   for(unsigned i= 0; i<vect_array.size(); i++)
    {
      std::cout << " " << vect_array[i];
    } 
    return 0;
}
Çıktı:
 5 5 5 5 5 5 5 5 5 5


Vektör içeriğine eleman ekle,çıkar ve swap kullanımı:
int main() 
{
   vector<int> vect_array(10,5);  
   
   //belirtilen bir konuma eleman ekle:
   vector<int>::iterator it = vect_array.begin() + 2;//başlangıçtan itibaren iki ileri.
   vect_array.insert(it,66);//ekle.
   
   //dizi sonuna eleman ekle:
   vect_array.push_back(21);
   vect_array.push_back(22);
   vect_array.push_back(23);
   
    //ekrana yazdır:
   for(unsigned i= 0; i<vect_array.size(); i++)
    {
     cout << " " << vect_array[i];
    } 
    cout << "\n";
    //dizi içerisinden eleman çıkar:
    it = vect_array.begin() + 2;
    vect_array.erase(it);
  
   //ekrana yazdır:
   for(unsigned i= 0; i<vect_array.size(); i++)
    {
     cout << " " << vect_array[i];
    } 
       cout << "\n";
    //swap kullanımı:
    vector<int> vect_array2(13,0);
    vect_array.swap(vect_array2);
        //ekrana yazdır:
   for(unsigned i= 0; i<vect_array.size(); i++)
    {
     cout << " " << vect_array2[i];
    } 
        
    return 0;
}
Çıktı:
 5 5 66 5 5 5 5 5 5 5 5 21 22 23
 5 5 5 5 5 5 5 5 5 5 21 22 23
 5 5 5 5 5 5 5 5 5 5 21 22 23


vector ile "fill" fonksiyonu kullanımı.
int main() 
{
   vector<int> vect_array(10,0);
   //dizi başından itibaren 4 adet 8 değerinde eleman ekle:  
   fill_n(vect_array.begin(),4,8);
   for(unsigned i=0; i<vect_array.size();i++)
   {
cout << " " << vect_array[i];
   }
    cout << "\n";
    
    //dizinin ilk 3 elemanından sonra 2 adet 7 değeri eleman ekle:
    fill_n(vect_array.begin() + 3,2,7);
    for(unsigned i=0; i<vect_array.size();i++)
    {
 cout << " " << vect_array[i];
    }
        
    return 0;
}

Çıktı:
 8 8 8 8 0 0 0 0 0 0
 8 8 8 7 7 0 0 0 0 0

İyi çalışmalar.

Hiç yorum yok:

Yorum Gönder