Dizi referansları - sayfa 4

 
Bir anlamda, gösterge arabelleği dokuzuncudur, ancak anlam aynıdır.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 

TheXpert :

Kopyalamadan normal bir diziye ihtiyacım var

yol, dizi yapısını ele geçirmektir. Onlar. yapının her şeyin yolunda olduğunu düşünmesi için yeterli parametrelerle birlikte bir dizi işaretçisi yerine bir zaman serisi işaretçisini kaydırın.

haha, temizlendi!

ve sonra işlevleri çekmek bir dizi dizisine referans değil, bir yapıdır ...

yapı, olduğu gibi diziden kopmuştur, ancak aynı zamanda veri alabilirsiniz.

ArrayStore:: double x[];
 
sergeev :
Bingo! :)
 
şimdi tüm bunlarla kalkmaya devam ediyor :)
 
sergeev :
şimdi tüm bunlarla kalkmaya devam ediyor :)
Beklentiyi görüyor musun? Teorik olarak, nesneler de dahil olmak üzere her şeyle aynı şey yapılabilir.
 
TheXpert :
Beklentiyi görüyor musun? Teorik olarak, nesneler de dahil olmak üzere her şeyle aynı şey yapılabilir.

Beklentileri hissetmenizi tavsiye etmiyorum. :))

Sorununla biraz oturdum, bir şey aydınlığa kavuştu.

ilk iki bayt - dizi türü (int)

ikinci ikisi hala belirsiz

üçte ikisi - veri öğesindeki bayt sayısı (int)

   // int x[][15];     // == 0x5200 0100 0400  // здесь в каментах - первые три пары байт структуры
   // uint x[][15];    // == 0x5300 0100 0400
   // short x[][15];   // == 0x5000 0100 0200
   // ushort x[][15];  // == 0x4F00 0100 0200
   // char x[][15];    // == 0x4D00 0100 0100

   // uchar x[][15];   // == 0x4E00 0100 0100

   // long x[][15];    // == 0x5500 0100 0800
   // ulong x[][15];   // == 0x5600 0100 0800

   // double x[][15];  // == 0x5800 0100 0800
   // datetime x[][15];// == 0x5400 0100 0800


sonra arka arkaya dört boyut gelir [ulong][ulong][ulong][ulong]

sonra ayrılmış arabelleğin boyutu

sonra bir arabelleğe bir işaretçi gibi (henüz kontrol etmedi)

anlaşılmazlığın ötesinde, belki bir rezerv, ama bir gerçek değil

 

Evet. ancak bu, memcpy hariç tutulursa

bundan önce, genellikle dizilerin dahili olarak kopyalanmasının memcpy'den daha hızlı olup olmadığını kontrol etmelisiniz.

 
MetaDriver :

Sorununla biraz oturdum, bir şey aydınlığa kavuştu.

Ah külotlarım, daha yeni kazmaya başlıyorum.
 
sergeev :

Evet. ancak bu, memcpy hariç tutulursa

bundan önce, genellikle dizilerin dahili olarak kopyalanmasının memcpy'den daha hızlı olup olmadığını kontrol etmelisiniz.

Evet, gerekli olacak. Memcpy, bir diziyi kopyalamakla karşılaştırılabilirse, örneğin 500.000'de, o zaman muhtemelen hiçbir anlamı yoktur.
 

MetaDriver :

anlaşılmazlığın ötesinde, belki bir rezerv, ama gerçek değil

Ayrıca bir AsSeries bayrağı ve muhtemelen diğerleri olmalıdır.
Neden: