Verilen eleman(lar)ın bir dizisini temizleme - sayfa 17

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

insanları kandırmaya gerek yok

Başlamadı bile ;-)

Hatta bir standardın varlığında "sağlama toplamı" hakkında sessiz kaldım.

Ayrıca, hızın nihayetinde tahmin edildiğine göre asemptomatikleri de hatırlayabilirsiniz.
Ve bu, ilk verilerin miktarına, kaldırılacak öğelerin sayısına ve konumlarına/dağılımlarına (gerçekte ASLA tek tip değildir) bağlıdır.

ve grafikler oluşturmanın mümkün / gerekli olduğunu.

hedef görev kesinlikle böyle bir çabaya değmez, ancak bir şekilde yöntemleri takip etmek gerekiyor

Birkaç sayfa daha devam edebilirim :-)

 

Döndürme, duraklama ve ısınma ile bir seçenek eklendi (ilk geçiş dikkate alınmaz)

Dosyalar:
 
Stanislav Dray :

Döndürme, duraklama ve ısınma ile bir seçenek eklendi (ilk geçiş dikkate alınmaz)

Pek çok örneğin yapılarla doğru çalışamaması garip ... Belki bir şey anlamıyorum elbette ...

 
Vladimir Pastushak :

Pek çok örneğin yapılarla doğru çalışamaması garip ... Belki bir şey anlamıyorum elbette ...

Sınıflar lehine yapılardan kurtulun. MQL'de çalışmak daha kolaydır.

 
Vladimir Pastushak :

Pek çok örneğin yapılarla doğru çalışamaması garip ... Belki bir şey anlamıyorum elbette ...

Ne? Ne demek istediğini anlamadım. Hangi örnekler doğru çalışmıyor? hala çalışıyor

1

 
Vladimir Pastushak :

Pek çok örneğin yapılarla doğru çalışamaması garip ... Belki bir şey anlamıyorum elbette ...

Fonksiyonların yapının hangi alanı ile karşılaştırılması gerektiği bilinmemektedir.

 
Dmitry Fedoseev :

Fonksiyonların yapının hangi alanı ile karşılaştırılması gerektiği bilinmemektedir.

Fonksiyonda alanlar üzerinde bir karşılaştırma vardır. Sonuç, bir nedenle dizideki son öğenin kaldırılmasıdır.

 
Yapıda, tüm yapının değil, alanın bir kayması olduğunu anladım ...
 
Nikolai Semko :

Kodu öğrenin.

Kodumu kontrol ettim. Her şeyi doğru yaptın.

Bu satırın neden zamanımın aslan payını aldığını anlamıyorum:

 //+------------------------------------------------------------------+
int PeterArray( int &Arr[], const int val) // вариант Peter Konow
  {
   int deleted= 0 ,q= 0 ;
   for ( int a1= 0 ; a1< ArraySize (Arr); a1++)
     {
       if (deleted)Arr[q]=Arr[q+deleted];
       if (Arr[q]==val){deleted++; q--;} <-----------Выполнение этих операций занимает кучу времени.
      q++;
     }
   ArrayResize (Arr,q);
   return (q);
  }
//+------------------------------------------------------------------+

Bu satır olmadan kod 2 mikrosaniyede yürütülür. Ama onsuz yapamazsınız.

Çözüm, en hızlı olmasa da, belki de en özlü olanıdır.


not. Yine de kararıma göre fonksiyon yazarken bir hata yaptınız:

yapmamalıyım

 ArrayResize (Arr,q);

a

 ArrayResize (Arr, ArraySize (Arr) - deleted);

Yinede teşekkürler.

 
Vladimir Pastushak :

Fonksiyonda alanlar üzerinde bir karşılaştırma vardır. Sonuç, bir nedenle dizideki son öğenin kaldırılmasıdır.

Bir öğeyi diğerine atarken, yani "=" işaretini kullanırken?

Bunu kendi kopyalamamı yaparken fark ettim. Hiçbir şey umut edilemez.