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

 
Tabii ki, maliyetler ve giderler üzerinde puan alabilirsiniz ve #define işlevi çağırmadan önce herhangi bir boyuttaki bir diziyi yeni oluşturulan 1 boyutlu bir diziye yeniden yazın (ve sonra yeniden yazın), ancak maliyetler içler acısı olacaktır.
 
Alexey Viktorov :

Neden yardım etmeyecek?

...

Çünkü aşırı yükleme, ne dizinin boyutlarının sayısı üzerinde ne de boyutların herhangi birinin boyutu üzerinde çalışmaz. Ve parametreleri otomatik olarak belirlenebilen fonksiyona geçirmek pek akıllıca bir karar değil.

 
Dmitry Fedoseev :

Çünkü aşırı yükleme, ne dizinin boyutlarının sayısı üzerinde ne de boyutların herhangi birinin boyutu üzerinde çalışmaz. Ve parametreleri otomatik olarak belirlenebilen fonksiyona geçirmek pek akıllıca bir karar değil.

Evet, bunun boş işler olduğunu zaten anladım.

 
Genel olarak, bu konu dikkate değer, ancak benim için çok kapsamlı ve karmaşık ve bu bana yılların deneyimiyle geliyor.
 
Seric29 :
Genel olarak, bu konu dikkate değer, ancak benim için çok kapsamlı ve karmaşık ve bu bana yılların deneyimiyle geliyor.

Çok fazla ayrıntıya girme, her şeyi çok genel yapmak istiyorlar ama onsuz da gayet iyi yaşayabilirsin.

 
Aslında şubenin ilk cevabında evrensel bir tarif verilmiş. Sadece açıp kendin test etmen gerekiyor, peki, hepsini aynı şekilde çiğneyip ağzına koyamazsın, değil mi?
 
Ilya Malev :
Aslında şubenin ilk cevabında evrensel bir tarif verilmiş. Sadece açıp kendin test etmen gerekiyor, peki, hepsini aynı şekilde çiğneyip ağzına koyamazsın, değil mi?

İlya, konuyu gerçekten ciddi bir şey olarak mı ele alıyorsun? Oynamak ve biraz kendinizi ölçmek kolay ... Çalışan bir cevap verdiniz: Her şey tek boyutlu bir dizide ve boyuttan bağımsız olarak geri döndü. Cevabım sizinkiyle örtüşüyor, özü değiştirmeyen sadece küçük teknik detaylar var. Hakkında tanımlı ve içler acısı maliyetler anlamadı.

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

İlya, konuyu gerçekten ciddi bir şey olarak mı ele alıyorsun? Oynamak ve biraz kendinizi ölçmek kolay ... Çalışan bir cevap verdiniz: Her şey tek boyutlu bir dizide ve boyuttan bağımsız olarak geri döndü. Cevabım sizinkiyle örtüşüyor, özü değiştirmeyen sadece küçük teknik detaylar var. Hakkında tanımlı ve içler acısı maliyetler anlamadı.

Hayır, tam tersine, ciddi değil, TC'ye nerede bir çözüm arayacağını tekrar açıkladım (ilk gönderide kontrol etmeme rağmen büyük olasılıkla çalışıyordu). Ve sonra tüm sohbet başladı :)

Mikrolitre cinsinden bu dizilerle durum üzücü olsa da, aslında vakaların% 99'unda ihtiyaç duyulmaması başka bir konudur. Omuzlarında bir kafa olduğunda, herhangi bir kodlayıcı yapıları ve hatta nesneleri kullanır.

hangisini yazdığımı tanımla benim belirlediğim sorunu çözmenize izin veriyor)) - Dmitry tarafından farklı diziler için yazılan kodu ArrayDel'e bir çağrı ile yürütün. Doğru, bu bir işlev değil, dedikleri gibi "ölü bir lapa". Ve tanımlamanın maliyetleri hakkında - bu, seçeneği herhangi bir dizi için int ar[] parametresinin ifadesiyle gerçekten çalıştırmak istiyorsanız, bunu yapabilirsiniz (bu basitleştirilmiştir, aslında boyutların sayısı aktarılmalıdır) orada):


 #property strict

#define PackAndDel(A,S,C) { int tmp[]; ArrayCopy (tmp,A); ArrayDelete(tmp,S,C); ArrayCopy (A,tmp); }

void ArrayDelete( int &ar[], int start, int count)
 {

   // ..... ;

 }



void OnStart ()

{

   int ar1[];

   int ar2[][ 5 ];

   int ar3[][ 6 ][ 2 ];

  PackAndDel( ar1, 0 , 1 );

  PackAndDel( ar2, 4 , 1 );

  PackAndDel( ar3, 1 , 3 );

}