Standart kütüphanenin içinde olan array işlevi gören çok işlevli bir yapıdır. Bu yapının boyutu değişkendir. Büyüyüp küçülebilir. Bellekte ardışık bir şekilde tutulabilir. Boyutunu size() fonksiyonuyla öğrenebiliriz.
Bu yapıyı kullanmak için öncelikle include etmemiz lazım:
#include <vector>
Bu yapıyı farklı veri türleriyle kullanabiliriz. Kullanmak istediğimiz veri türünü <> arasına yazıyoruz:
vector<float> sayilar{10,82,54,25};
Fonksiyonlarına bakalım.
sayilar.size() // içinde şuanda kaç tane eleman olduğunu söyler
sayilar.data() // vector yapısının içindeki arrayin adresini döndürür
sayilar.push_back() // sonuna bir eleman ekler
sayilar.pop_back() // sonundan bir eleman çıkartır
sayilar.clear() // tüm elemanları siler
Örnek 1:
#include <iostream>
#include <vector>
using namespace std;
void vector_yazdir(vector<float> vec) {
for (int i = 0; i < vec.size(); i++)
cout << vec[i] << '-';
cout << endl;
}
void vec_data(vector<float> vec) {
cout << vec.data() << endl;
}
void sifir(vector<float> vec) {
for (auto& i : vec)
i = 0;
}
void sifir_referance(vector<float>& vec) {
for (auto& i : vec)
i = 0;
}
int main() {
vector<float> sayilar{10,82,54,25};
vector_yazdir(sayilar); //10-82-54-25-
cout << endl;
cout << "sayilar.data()" << endl;
cout << sayilar.data() << endl; //0000022A4E40DDE0
vec_data(sayilar); //0000022A4E40F7B0
cout << endl;
cout << "copy" << endl;
sifir(sayilar);
vector_yazdir(sayilar); //10-82-54-25-
cout << endl;
cout << "referans" << endl;
sifir_referance(sayilar); //0-0-0-0-
vector_yazdir(sayilar);
cout << endl;
}
Örnek 2:
#include <iostream>
#include <vector>
using namespace std;
void vector_yazdir(vector<float> vec) {
for (int i = 0; i < vec.size(); i++)
cout << vec[i] << '-';
cout << endl;
}
int main() {
vector<float> sayilar{10,82,54,25};
vector_yazdir(sayilar); //10-82-54-25-
cout << endl;
sayilar.push_back(1.4);
sayilar.push_back(41.74);
sayilar.push_back(21.44);
sayilar.push_back(71.94);
vector_yazdir(sayilar); //10-82-54-25-1.4-41.74-21.44-71.94-
cout << endl;
}


Leave a Reply