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

 
Seric29 :

işlev nasıl çalışır

Kılavuzda bununla ilgili bir açıklama yok, nereden okuyabilirim?

Konuyu okuyor musun? Yönetici yanıtladı - açıklama yakında geliyor

 
Seric29 :

Dizinin boyutunu küçültmüyorum, ondan bir öğeyi kaldırıyorum ...

 void   ArrayFill( 
   void &  array[],       // массив 
   int     start,         // индекс начального элемента 
   int     count,         // количество элементов 
   void    value            // значение, которым заполняется массив 
   );

Sığmayacak mı?

 
Ilya Malev :

Bir arkadaş diyor ki: tek boyutlu ve iki boyutlu . 2D ile işleviniz çalışmıyor. Aynı isimli bir fonksiyonun her iki konu ile de nasıl çalışacağını göster :)

İki boyutlu hakkında bir şekilde görmedim. Ancak iki boyutlu olan da kendi içine kopyalanır, sadece alıcı dizisine hangi indeksten yazılacağı ve kaynaktan hangi indeksten okunacağı değerleri biraz farklıdır. Prensipte problem, mql'de izin verilen 3-4 boyutlu diziler için de çözülebilir.

 
Seric29 :

Dizinin boyutunu küçültmüyorum ama ondan bir eleman çıkarıyorum, bunlar farklı şeyler. Anladığım kadarıyla, 1.13612 değeri işlevinizden kaldırılmış, dellArrayElement( 3 , array); satırında belirtilmiş. dizi yani 3. eleman diziden kaldırıldı, doğru anladım mı? Bu tür deneylerin programı yoğun bir şekilde yükleme hızı nedir?

Ama eğer, durumda

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

Seriç29 , 2018.12.21 23:50

Diziden eleman nasıl kaldırılır ? Bunun için içinde depolanan öğelerin sayısını bilmem gerekir mi?

dizinin boyutunun küçültülmesi doğaldır. Değil mi?

Evet, örneğin, kaldırılan dizinin 3. öğesiydi. Hızlar ve vücudun bazı bölümleri diğer dallarda ölçülür. Bu durumda, hız oldukça normaldir. Hızın yaklaşık değerleri için, birkaç yüz silme işleminin birkaç kez başlatılması gerekir. Ve neden yapmalıyım?

 
https://www.mql5.com/ru/forum/289594
Очистка массива от заданного (ых) элементов
Очистка массива от заданного (ых) элементов
  • 2018.11.12
  • www.mql5.com
Есть массив содержащий набор данных по типу 1,2,3,6,9,5,6,3,25,6,8,7,4 нужно удалить например значения 3 и на выходе получить тот же массив без 3 и...
 
Alexey Viktorov :

İki boyutlu hakkında bir şekilde görmedim. Ancak iki boyutlu olan da kendi içine kopyalanır, sadece alıcı dizisine hangi indeksten yazılacağı ve kaynaktan hangi indeksten okunacağı değerleri biraz farklıdır. Prensipte problem, mql'de izin verilen 3-4 boyutlu diziler için de çözülebilir.

Prensip olarak çözülebilir olduğunu düşünüyorum. Ama aynı isimde bir fonksiyon için çözülebilir değil gibi görünüyor.

 
Ilya Malev :

Prensip olarak çözülebilir olduğunu düşünüyorum. Ama aynı isimde bir fonksiyon için çözülebilir değil gibi görünüyor.

Niye ya? İlkokul olarak yapın.

Gibi bir şey

 class A
{
 void DellArrElement( int i, double &arr[]);
 void DellArrElement( int i, double &arr[][]);
};

void A::DellArrElement( int i, double &arr[])
 {
   // тело функции для одномерного массива
 };

void A::DellArrElement( int i, double &arr[][])
 {
   // тело функции для двухмерного массива
 };

"Diz üstü" yazılmıştır, olası yanlışlıklar için çok özür dilerim.

 

Dizideki öğelerin sırası önemli değilse, oldukça hızlı bir şekilde yapılır:

 #define ARRAY_RESERVE_SIZE     1000

template < typename T>
void DeleteElementFromArray(T &array[], int elementToDelete)
{  
   int arraySize = ArraySize (array);
   if (elementToDelete < 0 || elementToDelete >= arraySize)
       return ;
      
   array[elementToDelete] = array[arraySize - 1 ];
   ArrayResize (array, arraySize - 1 , ARRAY_RESERVE_SIZE);
}

Bu, tek boyutlu bir dizi içindir. İki boyutlu ve daha yüksek boyutlu diziler aslında tek boyutlu dizilerdir. Tek boyutlu bir dizi, mantıksal olarak N boyutlu bir dizi olarak temsil edilebilir. Yani aslında tek boyutlu bir dizi her zaman yeterlidir.

 
Alexey Viktorov :

Niye ya? İlkokul olarak yapın.

Gibi bir şey

"Diz üstü" yazılmıştır, olası yanlışlıklar için çok özür dilerim.

Derlemeyi denediniz mi?

 
Ilya Malev :

Derlemeyi denediniz mi?

Şimdiye kadar, doğrudan forum web sitesinde bir derleyici yapmayı düşünmediler.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

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

Alexey Viktorov , 2018.12.22 21:25

Niye ya? İlkokul olarak yapın.

Gibi bir şey

 class A
{
 void DellArrElement( int i, double &arr[]);
 void DellArrElement( int i, double &arr[][]);
};

void A::DellArrElement( int i, double &arr[])
 {
   // тело функции для одномерного массива
 };

void A::DellArrElement( int i, double &arr[][])
 {
   // тело функции для двухмерного массива
 };

"Diz üstü" yazıldı , olası yanlışlıklar için çok özür dilerim.