Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
823
Tıklama
0
Öne Çıkarma
Nesne Dizilerini Tek Fonksiyon ile Nasıl Yazdırabilirim
H
5 yıl
Binbaşı
Konu Sahibi

İngilizcem yeterli olmadığı için yabancı kaynaklardaki açıklamalardan bir şey anlayamadım. Bir fonksiyon ile farklı türlerdeki üç diziyi nasıl yazdırabilirim?



< Resime gitmek için tıklayın >

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



C
5 yıl
Çavuş

c++ ta istiyorsun sanırım.yazdir metodunu generic yapabilirsin

c# ta örnekliyrum.

        public static void yazdir<T>(T[] dizi)
        {
            foreach(var i in dizi)
                Console.Write(i+"\t");
            Console.WriteLine();
        }

çağırmak için ise ;
            float[] d1 = { 1.1f, 2.2f, 3.3f };
            char[] d2 = { 'a', 'b', 'c' };
            int[] d3 = { 1, 2, 3 };


            yazdir<float>(d1);
            yazdir<char>(d2);
            yazdir<int>(d3);



C
5 yıl
Yüzbaşı

Amme hizmeti;

#include <iostream>
#include <vector>

template <class T>
class Dizi
{
public:
    Dizi(std::initializer_list<T> il)
    {
        for (T t : il)
            dizi.push_back(t);
    }
    
    void Yazdir()
    {
        for (T t : dizi)
            std::cout << t << " ";
        std::cout << std::endl;
    }
    
private:
    std::vector<T> dizi{};
};

int main()
{
   Dizi<int> intDizi = {1, 2, 3};
   Dizi<float> floatDizi = {6.6, 7.7, 8.8};
   Dizi<char> charDizi = {'a', 'b', 'c'};
   
   intDizi.Yazdir();
   floatDizi.Yazdir();
   charDizi.Yazdir();
   
   return 0;
}




G
5 yıl
Çavuş

farklı tür dizi diye birşey kullanmana gerek yok floatdizi initdizi vs tarzı container'ları senin tanımlaman ekstrem bir senaryo. vector, array vs. gibi herhangi bir built-in container'ı istediğin data tipiyle kullan. iterator ile dolaş bitsin gitsin.
@controller_ hocam bu arada yazdığın kod direkt vector container'ı kullanıyor zaten. türktelekom alt yapısı kullanan mehmetkom gibi olmuş




Bu mesajda bahsedilenler: @controller_
C
5 yıl
Yüzbaşı

Dostum o kadar yazı yazacağına keşke sende kendi çözümünü gönderseydin de millet faydalansaydı.


Bu mesaja 1 cevap geldi.
G
5 yıl
Çavuş

#include <iostream>
#include <vector>


template <typename T>
void yazdir(std::vector<T> vect) 

    for (auto& it : vect) {
        std::cout << it << std::endl;
    }
}


int main()
{
    std::vector<int> vectInt{ 10, 20, 30 };
    std::vector<float> vectFloat{6.6, 7.7, 8.8};
    std::vector<char> vectChar{'a', 'b', 'c'};
    yazdir(vectInt);
    yazdir(vectFloat);
    yazdir(vectChar);
    return 0;
}
o kadar yazı diyip geçme hocam nasıl yapılacağını anlatmışız işte. neyse eyvallah kodu da koyayım.




Bu mesajda bahsedilenler: @controller_
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.