Bir diziden bir eleman nasıl kaldırılır (tek boyutlu iki boyutlu)? - sayfa 6

 
Aliaksandr Hryshyn :
Boyutlandırmada bir sorun mu var?

Bir tanımla değil. İşlev parametresi olarak farklı boyutlarda diziler elde etmede sorunlar var.

 
Dizilerin 4'ten fazla boyutu yoktur. Yani 4 farklı fonksiyon yazabilirsiniz, hepsi bu.
 
Ilya Malev :

Bir tanımla değil. İşlev parametresi olarak farklı boyutlarda diziler elde etmede sorunlar var.

Bunun gibi şeyler için sınıfları kullanın. Farklı dizilere sahip sınıfın bir örneğini işleve iletin...
 
Dmitry Fedoseev :
Dizilerin burada 4'ten fazla boyutu yoktur. Yani 4 farklı fonksiyon yazabilirsiniz, hepsi bu.

1'den büyük boyutlu dizileri hiç kullanamazsınız ve farklı alanlara sahip bir şeyi manipüle etmeniz gerekiyorsa, bir dizi yapı veya bir nesne listesi kullanın. Şahsen ben kendim bir şeyler yazarken bunu hep yaparım. Ama sizin de uğraşmanız gereken bir başkasının kodunda çok boyutlu dizi gibi seçenekler de var. Ve eğlence burada başlıyor...

 
Aliaksandr Hryshyn :
Bunun gibi şeyler için sınıfları kullanın. Farklı dizilere sahip sınıfın bir örneğini işleve iletin...

Farklı boyutlardan oluşan bir diziye uygulanan işlev çağrısı aynı görünecek şekilde bir sınıf tanımlamaya çalışın.

 
Ilya Malev :

Normal sorular, şube adına parantez içinde yazılanları boşuna görmezden geldiniz. Öğe sayısını bilmeden - yapabilirsiniz. Boyutları bilmeden - imkansız .

Korkunç bir sırrı açığa çıkaracağım. Dizi tek boyutludur. Hiç. dedim zaten...

 
Алексей Тарабанов :

Korkunç bir sırrı açığa çıkaracağım. Dizi tek boyutludur. Hiç. dedim zaten...


İlya Malev :

Ve bunun görevle ne ilgisi olduğunu düşünüyorsunuz (bir görev sınıfı - işlevler aracılığıyla farklı boyutlardaki dizilerle birleşik çalışma)?

 
Ilya Malev :

Farklı boyutlardan oluşan bir diziye uygulanan işlev çağrısı aynı görünecek şekilde bir sınıf tanımlamaya çalışın.

Demek istediğim, gerekli dizi/diziler sınıfta tanımlanmalı ve bu sınıfın bir örneği işleve geçirilmelidir.
 

İlginç bir fenomen...

Koleksiyonunuza bir işlev yazmak için oturduğunuzda, nasıl daha iyi olduğu sorusu ortaya çıkıyor - böylece hızlı bir şekilde çalıştı (kontroller olmadan):

 void ArrayDelete( int & a[], int Start, int Count= 1 ){
   ArrayCopy (a,a,Start,Start+Count);
   ArrayResize (a, ArraySize (a)-Count);
}

Veya parametrelerin makul olup olmadığının kontrol edilip düzeltilmesi için kusursuz koruma ile mi? Burada, hızlı sürümün koleksiyona layık olmadığını anlıyorsunuz, çünkü yazması çok kolay ve yararlı bir şey temsil etmiyor. Ve tüm kontrolleri içeren seçenek, yalnızca bir müze parçası olarak iyidir, çünkü pratikte ekstra frenlere gerek yoktur. Ve böylece - peki, onun nafik'i.

 
Aliaksandr Hryshyn :
Demek istediğim, gerekli dizi/diziler sınıfta tanımlanmalı ve bu sınıfın bir örneği işleve geçirilmelidir.

Soruna bu şekilde yaklaşırsanız, çok boyutlu dizilerin hiçbir şekilde bildirilmesi gerekmez - bunun yerine farklı alanlara sahip yapı dizileri kullanmanız gerekir. Ancak soru farklı bir şekilde ortaya konmuştur - belirli bir veri olarak zaten mevcut olan bir dizi keyfi (önceden bilinmeyen) boyutla ne yapabiliriz?