C++ ile dinamik dizi boyutunu yeniden artırma
Standart C programlama dilinde malloc ile oluşturduğumuz dinamik dizinin boyutunu daha sonra realloc ile yeniden boyutlandırarak artırabiliyorduk.
C++ programlama dilinde dinamik dizi tekrar boyutlandırılamıyor, bunun için vektör kullanmanız tavsiye ediliyor. Bu örnek biz dizi boyutunu C++ da özel bir fonksiyon ile ayırtacağız. Yaptığımız iş aslında eski dizinin 2 katı kadar boyutta yeni dizi oluşturup, eski diziyi yeni diziye kopyalamaktan ibaret.
Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021.
C++ programlama dilinde dinamik dizi tekrar boyutlandırılamıyor, bunun için vektör kullanmanız tavsiye ediliyor. Bu örnek biz dizi boyutunu C++ da özel bir fonksiyon ile ayırtacağız. Yaptığımız iş aslında eski dizinin 2 katı kadar boyutta yeni dizi oluşturup, eski diziyi yeni diziye kopyalamaktan ibaret.
#include <iostream> #include<algorithm> using namespace std; void diziGenislet(int*& a, size_t& n) { size_t yeniboyut = 2 * n; int* yenidizi = new int[yeniboyut]; copy(a, a + n, yenidizi); delete[] a; a = yenidizi; n = yeniboyut; } int main() { size_t ogrencisay; double toplam=0, ortalama=0; cout << "Ogrenci Sayisi:" << endl; cin>>ogrencisay; int *notlar= new int[ogrencisay]; for( int i=0;i<ogrencisay;i++) { cout << (i+1)<< " .Ogrenci notunu giriniz:" << "\n"; cin>>notlar[i]; } string cevap; cout<<"Tekrar eklemek ister misiniz?"<<"\n"; cin>>cevap; if(cevap=="E" || cevap=="e"){ diziGenislet(notlar,ogrencisay); cout<<"Yeni ogrenci sayisi:"<<ogrencisay<<"\n"; for( int j=ogrencisay/2;j<ogrencisay;j++){ cout << (j+1) << " .Ogrenci notunu giriniz:" << "\n"; cin>>notlar[j]; } cout<<"=== Tum Dizi ==="<<"\n"; for(int k=0;k<ogrencisay;k++){ cout<<notlar[k]<<"\n"; toplam+=notlar[k]; } cout<<"Ortalama:"<<(toplam/ogrencisay)<<"\n"; } return 0; }
Ekran çıktısı aşağıdaki gibi olacaktır. Burada önce 3 öğrenci için dinamik olarak yer tahsis edip, daha sonra yeniden boyutlandırarak tahsis ettiğimiz yeri 2 katına çıkardık ve kullanıcının programdan çıkmadan dinamik olarak istediği gibi veri girmesini sağladık. Bu işlemi daha önce de belirttiğimiz gibi vektörlerle de yapabilirsiniz ama bu yöntem vektörlere göre daha hızlı çalışacaktır. Tabi vektörlere başka yazılarımızda değineceğiz.
Mutlu kodlamalar,
Oğuzhan TAŞ
Ocak 2021.
Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: C# Programlama Dili ile İlgili Örne...
- :: Excel hücrelerinde yıldız koyarak b...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?