Vektörler boyutu program esnasında değiştirilebilen dinamik dizilerdir.
Her türden veri ya da nesne bu dinamik dizilerde tutulabilir.
C++'ta vektör işlemleri vector sınıfı ile yapılabilir. Bu sınıfı kullanabilmek
için aşağıdaki gibi vector sınıfını kodumuza ekliyoruz.
#include <vector> // vector sınıfı için
// veya
#include <bits/stdc++.h> // tüm C++ standartlarını tek bir
// kütüphaneyle kullanmak için.Vektör tanımlama aşağıda verilen örneklerdeki gibi tanımlanabilir.
Başlangıçta boyut vermeden vektör tanımlamak için:
// vector<veri_tipi> vector_adi;
vector<int> vect_int_item;Bu tanımlamada başlangıçta herhangi bir boyut belirlenmemiştir.
Ancak vektöre eleman eklendikçe otomatik olarak boyutunu büyütecektir.
Başlangıçta belli bir boyut belirterek vektör tanımlamak için:
vector<int> vect_int_item(10);Bu tanımlamada başlangıç olarak 10 eleman kapasiteli bir boyut
belirlenmiştir. Ancak bu boyut sınırlayıcı değildir. Dolayısıyla eleman
eklendikçe Vektör boyutu otomatik olarak büyümeye devam edecektir.
Başlangıçta belli bir boyut ve eleman/öğe değerini belirterek vektör
tanımlamak için:
vector<int> vect_int_item(10, 44);Bu tanımlamada
- başlangıç olarak 10 eleman kapasiteli bir boyut belirlenmiş
- eleman değerleri 44 olarak verilmiştir.
Dolayısıyla 0–9 index değerleri ve arasındaki tüm eleman değerleri 44 çıktısı
verir.
Başlangıçta bir liste ile de tanımlama yapılabilir.
vector<int> vect_int_item = {1, 2, 3, 4};| Metod | Açıklama |
|---|---|
| -size() | Vektördeki eleman sayısını belirtilen bir değer döndürür. |
| -at() | Parametre olarak belirtilen index değerine karşılık gelen elemanı döndürür |
| -empty() | Vektörün boş olup olmadığını belirleyen bir bool durum döndürür. |
| -clear() | Vektördeki tüm elemanları siler. |
| -capacity() | Vektörün mevcut kapasitesini belirten bir değer döndürür. |
| -resize() | Vektörün boyutunu değiştirir. |
| -max_size() | Vektörün tutabileceği maksiumum eleman sayısını döndürür. |
| -begin() | Vektorün başlangıç posizyonunu gösteren bir iterator döndürür. |
| -cbegin() | Vektörün ilk elemanını işaret eden bir iterator döndürür. Döndürülen iterator const halindedir. |
| -end() | Vektorün sonunu gösteren iterator döndürür. |
| -cend() | Vektörün ilk elemanını işaret eden bir iterator döndürür. Döndürülen iterator const halindedir. |
| -front() | Vektörün en başında yer alan elemanı döndürür. |
| -back() | Vektörün en sonunda yer alan elemanı döndürür. |
| -push_back() | Vektörün sonuna eleman ekler. |
| -pop_back() | Vektörden son elemanı çıkarır/siler. |
| -data() | Vektör içeriğini bir diziye yazar |
| -insert() | Belirtilen bir pozisyona yeni eleman ekler. |
| -erase() | Belirtilen bir elemanı Vektörden siler. |
| -operator [] | Belirli bir elemana erişmek için kullanılır. |
| -operator () | Vektöre başka bir vektor atamak/aktarmak için kullanılır. İşlem sonucunda eski veriler kaybolur. |
| -emplace() | Belirtilen pozisyondan itibaren yeni eleman eklemek için kullanılır. |
| -emplace_back() | Vektörün sonuna yeni eleman eklemek için kullanılır. |
| -assign() | Vektore yeni değerler atamak için kullanılır. İşlem sonucunda eski veriler kaybolur. |
| -swap() | Vektörler arasında elemanları değiş tokuş eder |
| -rbegin() | Bu fonksiyon ters başlangıç anlamına gelir ve Vektörun son elemanını işaret eden bir reverse_iterator döndürür. |
| -rend() | Bu fonksiyon ters uç anlamına gelir ve Vektörün ilk elemanı işaret eden bir reverse_iterator döndürür. |
| -crbegin() | Vektörun son elemanını işaret eden bir const_reverse_iterator döndürür |
int main()
{
// Boyutu belirsiz
vector<int>myVector;
// Boyut: 0
cout << "Boyut: " << myVector.size();
return 0;
}int main()
{
// Boyutu belirli
vector<int>myVector(10);
// Boyut: 10
cout << "Boyut: " << myVector.size();
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(10, 3);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// Bütün değerler 3
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
return 0;
}int main()
{
// Liste ile ilk değer atama
vector<int>myVector = {1, 2, 3};
// Boyut: 3
cout << "Boyut: " << myVector.size() << endl;
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(10, 3);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// DOLU
cout << (myVector.empty() ? "BOŞ" : "DOLU");
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
// Boyut: 0
cout << "Boyut: " << myVector.size() << endl;
// BOŞ
cout << (myVector.empty() ? "BOŞ" : "DOLU");
return 0;
}int main()
{
// Boyutu belirli, ilk değer yok
vector<int>myVector(0);
// Boyut: 0
cout << "Boyut: " << myVector.size() << endl;
// BOŞ
cout << (myVector.empty() ? "BOŞ" : "DOLU");
return 0;
}int main()
{
// Boyutu belirli, ilk değer yok
vector<int>myVector(10);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// DOLU
cout << (myVector.empty() ? "BOŞ" : "DOLU");
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(10, 3);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// Bütün değerler 3
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
myVector.clear();
// Boyut: 0
cout << "Boyut: " << myVector.size() << endl;
// Döngüye girmez
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(10, 3);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 10
cout << "Kapasite: " << myVector.capacity() << endl;
// Bütün değerler 3
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
myVector.clear();
// Boyut: 0
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 10
cout << "Kapasite: " << myVector.capacity() << endl;
// Döngüye girmez
for(int i = 0; i < myVector.size(); i++)
cout << "myVector.at(" << i << "): " << myVector.at(i) << endl;
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(10, 3);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 10
cout << "Kapasite: " << myVector.capacity() << endl;
myVector.resize(9);
// Boyut: 9
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 10
cout << "Kapasite: " << myVector.capacity() << endl;
cout << "Maksimum boyut: " << myVector.max_size() << endl;
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
for(int i = 0; i < 5; i++) // 5 tane eleman ekle
myVector.push_back(i); // 1 2 3 4
// iteratör tanımlama
vector<int>::iterator myIterator;
myIterator = myVector.begin();
cout << "Baştaki eleman: " << *myIterator << endl;
myIterator = myVector.end();
cout << "Sondaki eleman: " << *(myIterator - 1) << endl;
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
for(int i = 0; i < 5; i++) // 5 tane eleman ekle
myVector.push_back(i); // 1 2 3 4
cout << "Baştaki eleman: " << myVector.front() << endl;
cout << "Sondaki eleman: " << myVector.back() << endl;
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
myVector.push_back(0); // 0. indekse 0 yaz
myVector.push_back(1); // 1. indekse 1 yaz
// Boyut: 2
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 2
cout << "Kapasite: " << myVector.capacity() << endl << endl;
for(int i = 2; i < 10; i++) // 8 tane eleman ekle
myVector.push_back(i);
// Boyut: 10
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 16
cout << "Kapasite: " << myVector.capacity() << endl << endl;
for(int i = 10; i < 20; i++) // 10 tane eleman ekle
myVector.push_back(i);
// Boyut: 20
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 32
cout << "Kapasite: " << myVector.capacity() << endl << endl;
for(int i = 20; i > 17; i--) // son 3 elemanı sil
myVector.pop_back();
// Boyut: 17
cout << "Boyut: " << myVector.size() << endl;
// Kapasize: 32
cout << "Kapasite: " << myVector.capacity() << endl << endl;
cout << "Kapasitenin üstel olarak arttığına dikkat et" << endl;
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
for(int i = 0; i < 10; i++) // 10 tane eleman ekle
myVector.push_back(i);
int *array = myVector.data();
for(int i = 0; i < myVector.size(); i++)
cout << *array++ << " ";
return 0;
}int main()
{
// Boyutu belirli, ilk değer atama
vector<int>myVector(5, 1);
// iteratör tanımlama
vector<int>::iterator myIterator;
for(int i = 0; i < myVector.size(); i++)
cout << myVector.at(i) << " ";
cout << endl;
myIterator = myVector.begin(); // İlk elemanın yeri
myVector.insert(myIterator, 2); // Vektörün başına 2 ekle
for(int i = 0; i < myVector.size(); i++)
cout << myVector.at(i) << " ";
cout << endl;
myIterator = myVector.end(); // Son elemanın yeri
myVector.insert(myIterator, 3); // Vektörün başına 3 ekle
for(int i = 0; i < myVector.size(); i++)
cout << myVector.at(i) << " ";
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
vector<int>yourVector;
for(int i = 0; i < 5; i++) // 5 tane eleman ekle
myVector.push_back(i); // 0 1 2 3 4
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << endl;
myVector[2] = 5; // 2. indekse 5 rakamını ekle
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << endl << "---" << endl;
yourVector = myVector;
for(int i = 0; i < yourVector.size(); i++)
cout << yourVector[i] << " ";
return 0;
}int main()
{
// Boyutu belirsiz
vector<int>myVector;
myVector = {1, 2, 3, 4, 5};
//for(int i = 0; i < 5; i++) // 5 tane eleman ekle
// myVector.push_back(i); // 0 1 2 3 4
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << endl;
myVector.emplace(myVector.begin() + 2, 10); // 2. indeksten itibaren ekle
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << endl;
// 3. indeksten itibaren yeni değer ekle
// eklenecek değerler: 30 40 50 60 70 80 90
for(int i = 3; i < 10; i++)
myVector.emplace(myVector.begin() + i, i * 10);
// eklenme sırasına dikkat edin
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << endl;
// 3. indeksten itibaren yeni değer ekle
// eklenecek değerler: 300 400 500 600 700 800 900
for(int i = 3; i < 10; i++)
myVector.emplace(myVector.begin() + 3, i * 100);
// eklenme sırasına dikkat edin
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
return 0;
}int main ()
{
vector<int> myVector;
myVector.assign(7, 100);
cout << "Boyut: " << int(myVector.size()) << endl;
cout << "Elemanlar:" << endl;
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << endl;
return 0;
}int main()
{
vector<int> myVector;
int a[] = {1, 2, 3, 4, 5, 6, 7};
// Dizinin ilk iki elemanı al -> 1, 2
myVector.assign(a, a + 2);
cout << "Vektörün elemanları : ";
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << "\nVektörün boyutu : " << myVector.size() << endl;
// Dizinin 2. indeksinden itibaren
// 5. indekse kadar olan elemanları al -> 3, 4, 5
myVector.assign(a + 2, a + 5);
cout << "Vektörün elemanları : ";
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << "\nVektörün boyutu : " << myVector.size() << endl;
cout << "Eski verilen ezildiğine dikkat et";
return 0;
}int main()
{
vector<int> myVector = {1, 2, 3, 4, 5, 6, 7};
cout << "Vektörün elemanları : ";
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
// Bu vektörün 2. elemanından 6. elemanına kadar olanları al
// 3, 4, 5, 6
myVector.assign(myVector.begin() + 2, myVector.begin() + 6);
cout << "\nVektörün elemanları : ";
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << "\nEski verilen ezildiğine dikkat et";
return 0;
}int main()
{
vector<int> myVector;
// Vektöre bir liste ile atama yap
myVector.assign({ 1, 2, 3 });
cout << "Liste: ";
for(int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
return 0;
}int main()
{
vector<int> myVector = {1, 2, 3};
vector<int> yourVector = {4, 5, 6, 7};
// İki vektörün elemanlarını aralarında yer değiştir
myVector.swap(yourVector);
cout << "myVector : ";
for (int i = 0; i < myVector.size(); i++)
cout << myVector[i] << " ";
cout << "\nyourVector : ";
for (int i = 0; i < yourVector.size(); i++)
cout << yourVector[i] << " ";
return 0;
}int main()
{
vector<int> myVector;
myVector.push_back(11);
myVector.push_back(12);
myVector.push_back(13);
myVector.push_back(14);
myVector.push_back(15);
cout << "Vektörün elemanları ters sıralanadı: ";
for(auto it = myVector.rbegin(); it != myVector.rend(); it++)
cout << *it << " ";
return 0;
}Bünyamin TAMAR - Nisan 2022
