Dizi boyutunu bulun C++

Find Array Size C



Dizi, aynı veri türünden öğelere sahip bir kapsayıcıdır. Bir dizinin gerçek boyutunu bilmiyorsak, farklı yöntemlerle belirlenebilir. Bir dizinin boyutu hakkında konuştuğumuzda, aslında dizide bulunan eleman sayısından bahsediyoruz. Bazen dizi boyutunu tanımlarız ve bazen parantezler boş bırakılır. Bu, yalnızca bir dizinin içinde değer saklama kapasitesini gösteren görünen bir boyuttur. Örneğin, örnek bir dizi bildirimi düşünün

Int dizisi[] = {1,2,3,4,5,6}

Burada bir dizinin boyutu veya bir dizinin uzunluğu 6'dır. Ve atanacak toplam dizi boyutu gösterilmez. Gerçek boyut, farklı işlemler uygulanarak elde edilir. Bu işlemler, bu makalede bir dizinin boyutunu elde etmek için kullanılır.







örnek 1

Bu çizimde, start() ve end() kavramlarını kullanacağız. Bu yöntem sayesinde bir dizinin boyutu kolayca bilinebilir. Bunlar, standart kitaplıklar için bilinen iki kitaplıktır. Bu iki işlev, dizinin başlangıç ​​ve bitiş noktalarını gösteren yineleyicileri döndürür. Başlıktan başlayarak bir dizi kitaplığı kullanıyoruz. Bu, diziyle ilgili tüm işlevleri içerecektir. Ana fonksiyonda tamsayı değerlerine sahip bir dizi başlattık.



Maliyet<<……….<<son(ile)-begib(ile)<<

Burada dizi boyutundan bahsetmedik. Cout'u takip eden display deyiminde end() ve begin() fonksiyonlarını kullandık. Bu iki fonksiyon arasındaki farklılık bize bir dizinin boyutunu gösterecektir. Bu fonksiyonların parametrelerinde diziyi geçtik. Bunu yaparak, gerçek boyut belirlenecektir. Bu işlevlerden elde edilen değer doğrudan görüntülenir.







Şimdi çıktıya doğru ilerliyoruz. Bu programları Linux'ta yürütmemiz gerekiyor, bu yüzden Ubuntu terminalinin katılımına ihtiyacımız var. C++ kodunu kullandığımız için, kodu derleyici aracılığıyla derlememiz gerekiyor. Bu G++ derleyicisidir. Kodu derledikten sonra çalıştıracağız. Aşağıdaki komutlar kullandığımız çıktı yaklaşımını göstermektedir.

$ gr++ -o kod2 kod2.C

$./kod2



Artık çıktıyı görebilirsiniz. std durumunda bir başka benzer örnek, mesafe işlevidir. Bu mesafe start() ve end() fonksiyonları kullanılarak hesaplanır. Bu, bu işlevleri std ile kullanarak tamamlanır.

Int n=saat:: mesafe(saat::başlamak(varış),saat::son(varış));

Çıktı cout deyiminde elde edilir. Kaydı görmek için kodu çalıştırmak üzere derleyiciyi tekrar kullanın.

Burada istediğimiz çıktının elde edildiğini görebilirsiniz.

Örnek 2

Bu örnek, C++ kodundaki sizeof() işlevinin kullanımıyla ilgilidir, çünkü bu değer, verilerin gerçek boyutunu bayt biçiminde döndürür. Ayrıca, bir diziyi depolamak için kullanılan bayt sayısını döndürmekle de ilgilenir. Başka bir deyişle, Bu örnekte, ilk adım, bir dizinin boyutunu bildirmeden bir diziyi başlatmaktır. sizeof() işlevi için kullanılan sözdizimi şöyledir:

Uluslararası= boyutu(varış)/boyutu(varış[0]);

arr dizisi nerede. arr[0] dizideki elemanların indeksini gösterir.

Dolayısıyla bu ifade, dizi boyutunun mevcut tüm öğelerin boyutuna birer birer bölündüğünü ima eder. Bu, uzunluğun hesaplanmasına yardımcı olur. Fonksiyondan gelen değeri almak ve saklamak için bir tamsayı değişkeni kullandık.

Çıktıyı burada aynı derleme-yürütme yöntemiyle komut isteminden alacağız.

Çıktı, dizinin boyutunu gösterir; bu, içinde bulunan öğelerin sayısını, yani 6'dır.

Örnek 3

Bu örnek, size () işlevinin kullanımını içerir. Bu işlev, standart kitaplık olan STL'ye yerleştirilmiştir. Ana programdaki ilk adım dizi bildirimidir. Burada dizinin adı aynı zamanda boyut ve tamsayı değerini de içerir. Bu yöntem ayrıca sonucu doğrudan çıktı ifadesinde döndürür.

Maliyet<<….<<arr.boy()<<

'arr' dizi olduğunda, sonucu almak veya işleve erişmek için, size işlevli dizinin adına ihtiyacımız var.

Sonucu görüntülemek için, sonucu derlemek ve yürütmek için g++ derleyicisini kullanırız.

Çıktıdan, sonucun dizinin gerçek boyutunu gösteren istediğimiz sonuç olduğunu görebilirsiniz.

Örnek 4

Bir dizinin boyutu, işaretçiler değişkenin değerinin adresini/konumunu sakladığı için işaretçiler kullanılarak da elde edilebilir. Şimdi aşağıda verilen bir örnek düşünün.

İlk adım, bir diziyi her zamanki gibi başlatmaktır. Ardından işaretçi dizi boyutu için çalışır.

Int len= *(&dizi+ 1)- dizi;

Bu, işaretçi olarak çalışan temel ifadedir. *, bir dizideki herhangi bir öğenin konumunu bulmak için kullanılırken, & operatörü, işaretçi aracılığıyla elde edilen konumun değerini elde etmek için kullanılır. İşaretçilerden dizi boyutunu bu şekilde elde ederiz. Sonuç terminal aracılığıyla gösterilir. Cevap aynı. Bahsedilen dizinin boyutu 13 olarak belirtilmiştir.

Örnek 5

Bu örnekte, şablon argüman çıkarımı fikrini kullandık. Bir şablon argümanı, özel türden bir parametredir. Argüman olarak iletilebilen normal işlevler gibi, herhangi bir türde bir argüman iletmek için kullanılır.

Bir dizi parametre olarak iletildiğinde, adresi göstermek için bir işaretçiye dönüştürülür. Belirli bir dizinin uzunluğunu elde etmek için, bu şablon argüman çıkarımı yaklaşımını kullanırız. Std, standardın kısa bir şeklidir.

Verilen bir örneği göz önünde bulundurarak, dizi boyutunu elde etmek için kullanılan bir şablon sınıfını tanıttık. Şablon argümanlarının tüm işlevlerini içeren varsayılan yerleşik bir sınıftır.

Constexpr std: : size_tboy(constT(&dizi)[n])istisnasız{

dönüşn;

}

Bu, bu kavramda sabit bir çizgidir. Çıktı doğrudan cout deyiminde elde edilir.

Çıktıdan, istediğimiz çıktıyı aldığımızı görebilirsiniz: dizi boyutu.

Örnek 6

Programda dizi boyutunu elde etmek için std:: vector kullanıyoruz. Bu bir tür kapsayıcıdır; işlevi dinamik dizileri depolamaktır. Farklı işlemler için farklı yöntemlerle çalışır. Bu örneği gerçekleştirmek için, içindeki tüm vektör işlevlerini içeren bir vektör kitaplığı kullandık. Ayrıca programda kullanılacak cin, cout, endl ve vektör deyimlerini de bildirir. Programda önce bir dizi başlatılır. Çıktı, vektör boyutuna göre cout ifadesinde görüntülenir.

Maliyet<<vektör boyutu: <<int_dizi.boy() <<son;

Şimdi Ubuntu terminalinden çıktıyı göreceğiz. Dizinin boyutu, içinde bulunan öğelere göre doğrudur.

Çözüm

Bu öğreticide, dizi uzunluğunu veya boyutunu elde etmek için farklı bir yaklaşım kullandık. Bazıları yerleşik işlevlerdir, diğerleri ise manuel olarak kullanılır.