C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Benzer belgeler
C++ Dersi: Nesne Tabanlı Programlama

Standard Template Library

String Sınıfını Yönetmek

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Programlama Dilleri 3

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

ALGORİTMA VE PROGRAMLAMA I

Özyineleme (Recursion)

Genel Programlama II

Yrd. Doç. Dr. Caner ÖZCAN

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

ALGORİTMA VE PROGRAMLAMA I

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

C++ Dersi: Nesne Tabanlı Programlama

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

HSancak Nesne Tabanlı Programlama I Ders Notları

Yrd. Doç. Dr. Caner ÖZCAN

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Veri Yapıları Laboratuvarı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Pointer Kavramı. Veri Yapıları

C++ Dersi: Nesne Tabanlı Programlama

JAVADA DİZİ İŞLEMLERİ

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

C++ Dersi: Nesne Tabanlı Programlama

ALGORİTMA VE PROGRAMLAMA I

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

1 PROGRAMLAMAYA GİRİŞ

YZM 2116 Veri Yapıları

Görsel Programlama DERS 04. Görsel Programlama - Ders04/ 1

Diziler. Dizi Tanımı Dizi Elemanlarına Değer Atama Diziler ve Göstergeler 2-Boyutlu Diziler

ALGORİTMA VE PROGRAMLAMA II

Sunum İçeriği. Programlamaya Giriş

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

YZM 2116 Veri Yapıları

İNTERNET PROGRAMCILIĞI DERSİ

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA II

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

C++11'in Bazı Yenilikleri ve D'deki Karşılıkları

ALGORİTMA VE PROGRAMLAMA I

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

ALGORİTMA VE PROGRAMLAMA II

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

Dr. Fatih AY Tel: fatihay@fatihay.net

NESNEYE YÖNELİK PROGRAMLAMA

PHP, nesne-yönelimli (object-oriented) bir dil olduğu için, nesne oluşturma imkânına ve bunların kullanılmasını sağlayan metodlara da sahiptir.

ALGORİTMA VE PROGRAMLAMA II

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

C PROGRAMLAMA D İ L İ

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Yrd. Doç. Dr. Caner ÖZCAN

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

KONTROL VE OTOMASYON KULÜBÜ

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Giriş. ENF102 Jeoloji

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

Görsel Programlama (Visual Programming)

BLM 111 ALGORİTMA VE PROGRAMLAMA I

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

Genel Programlama II

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Eln 1002 Bilgisayar Programlama II

Ardışık Veri Tipleri. Prof.Dr. Bahadır AKTUĞ JFM212 Python ile Mühendislik Uygulamaları. *Kaynakça bölümünde verilen kaynaklardan derlenmiştir.

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

İNTERNET TABANLI PROGRAMLAMA

Zeki Optimizasyon Teknikleri

R ile Programlamaya Giriş ve Uygulamalar

Nesneye Dayalı Programlama Laboratuvarı

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

C++ Dersi: Nesne Tabanlı Programlama

Sınav Dağılım & IMKB Endeks

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

Diziler İndisli Değişkenler

Mantıksal Kontrol ve Döngü Komutları

NESNEYE YÖNELİK PROGRAMLAMA

1 RUBY HAKINDA 1 Ruby nin Gelişim Hikayesi 1 Neden Ruby? 1 Neden Bu Kadar Popüler? 2

D İ Z İ L E R A R R A Y S

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

NESNEYE YÖNELİK PROGRAMLAMA

Transkript:

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector)

İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına Erişim 19.5 vector Üye Fonksiyonlar 19.6 İteratörler Çözümlü Sorular 2

Hedefler Standart şablon kütüphanesinin yapısını ve bileşenlerini anlatma vector nesnesi ve diziler arasındaki farkları anlatma vector tanımı yapma vector nesnesinin elemanlarına erişme vector nesnesinin sonuna ekleme vector nesnesinin ilk ve son elemanına erişme vector nesnesinin büyüklüğünü hesaplama vector nesneleri arasında eleman değiş tokuşu yapma vector nesnesinin elemanları üzerinde işlem yapmak için iteratör kullanma 3

19.1 Standart Şablon Kütüphanesi STL kütüphaneleri üç bileşenden oluşur: konteyner (container): veri gruplarını saklamaya yarayan veri yapısı. iteratör (iterator): konteynerde saklanan verilere erişmek için tanımlanmış genel gösterge. algoritma (algorithm): konteyner nesneleri üzerinde işlem yapabilen genel fonksiyon şablonları STL de yer alan konteynerler de iki kategoriye ayrılır: sıralı konteyner (sequence container): dizilerde olduğu gibi veriler ardarda saklanır. ilişkisel konteyner (associa[ve container): veriler anahtarıyla beraber saklanır ve bu sayede verilere hızlı ve rastgele erişim yapılabilir. 4

19.2 vector SınıG vector konteyneri istenildiğinde genişle[lebilen, içinde birçok üye fonksiyon barındıran, dinamik bir dizi şablonu Dizilerde olduğu gibi bir vector nesnesi bellekte elemanlarını ardarda saklar ve eleman erişimini [] operatörü ile yapabilir. Ancak vector konteynerlerinin dizilere oranla birçok avantajı vardır. Dizi tanımının aksine vektor nesnesi tanımında kaç elemanlı olacağını belirtmeye gerek yoktur. vector nesnesi yeni eleman eklendiğinde otoma[k olarak genişler. vector nesnesi içinde kaç eleman içerdiğini tutar. 5

19.3 vector Tanımı #include <vector> vector konteynerinin içinde farklı yapıcı fonksiyonlar tanımlanmış_r: vector<int> v1; : v1 isimli, 0 elemanlı, int [pinde bir vektör tanımlar. vector<double> v2(10); : v2 isimli, double [pinde 10 elemanlı bir vektör tanımlar. vector<int> v3(10,4); : v3 isimli, int [pinde 10 elemanlı bir vektör tanımlar. Her elemanın ilk değeri 4 olarak atanır. vector<int> v4(v3); : v4 isimli vektör tanımlar ve içine v3 vektörünün içeriğini kopyalar. 6

19.4 vector Elemanlarına Erişim [] operatörü veya at() fonksiyonu v.at(indeks) : v vektörünün indeks pozisyonundaki elemanına erişir. Bu fonksiyon geçerli indeksin girilip girilmediğini kontrol eder. v[indeks]: v vektörünün indeks pozisyonundaki elemanına erişir. Bu fonksiyon geçerli indeksin girilip girilmediğini kontrol etmez. 7

19.4 vector Elemanlarına Erişim... 8

19.5 vector Üye Fonksiyonlar push_back(y): Vektör ün sonuna y elemanını ekler. front() veya v[0]: Vektör ün ilk elemanını döndürür. back(): Vektör ün son elemanını döner. 9

19.5 vector Üye Fonksiyonlar... pop_back() : Vektör deki son elemanı siler. 10

19.5 vector Üye Fonksiyonlar... size() : Vektör de tutulan eleman sayısını döner. 11

19.5 vector Üye Fonksiyonlar... empty() : Vektör ün boş olup olmama durumuna göre true ya da false değer döner. 12

19.5 vector Üye Fonksiyonlar... swap(v2) : Vektör ün elemanları ile v2 vektörünün elemanları değiş tokuş edilir. 13

19.5 vector Üye Fonksiyonlar... capacity() : Yeni yer tahsis edilmeden önce vektör ün maksimum eleman sayısını döndürür. reserve(n) : Yeni yer tahsis edilmeden önce maksimum eleman sayısı n olarak değiş[rilir. 14

19.5 vector Üye Fonksiyonlar... resize(n,t) : Vektör ün içerisindeki elemanları ekleyerek ya da çıkararak, vektörün eleman sayısı n olacak şekilde günceller. Yeni eleman eklemesi durumunda, yeni elemanlara t değeri atanır. 15

19.5 vector Üye Fonksiyonlar... clear() : Vektör ün içerisindeki tüm elemanları siler. 16

19.6 İteratörler Ing. Iterator Bir veri yapısı içerisinde tutulan elemanlar üzerinde işlem yapmak amacı ile kullanılan bir göstergedir. Vektörlere ait iteratörleri kullanmak için aşağıdaki söz dizimine uygun tanımlama yapmak gerekir. vector<veritipi>::iterator iteratöradı; Vektör gibi içerisinde veri saklayan her konteynerin, begin() ve end() fonksiyonları kullanılarak iteratörlerle erişilir. 17

19.6 İteratörler... begin() : Vektör ün ilk elemanını gösteren iteratörü döndürür. 18

19.6 İteratörler... end() : Vektörün son elemanından sonrasını gösteren iteratörü döndürür. 19

19.6 İteratörler... ++ : İteratör veri yapısındaki elemanlar üzerinde bir kademe ilerler ve bir sonraki elemanı gösterir. 20

19.6 İteratörler... - - : İteratör veri yapısındaki elemanlar üzerinde bir kademe geri gelir ve bir önceki elemanı gösterir. 21

Çözümlü Sorular Soru 22

Çözümlü Sorular Cevap 23

Çözümlü Sorular Cevap 24

Çözümlü Sorular Cevap 25

Çözümlü Sorular Cevap 26

Çözümlü Sorular Cevap 27