Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
5
Cevap
822
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 >



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.