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;

}


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *