Referências de matriz - página 4

 
Refiro-me ao indicador tampão nove, mas o significado é o mesmo.
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
Усреднение ценовых рядов без дополнительных буферов для промежуточных расчетов
  • 2010.10.25
  • Nikolay Kositsin
  • www.mql5.com
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
 

TheXpert:

Preciso de uma matriz normal sem cópia

O caminho é aparafusar com a estrutura da matriz. Ou seja, deslizar um ponteiro de série temporal em vez de um ponteiro de matriz, juntamente com parâmetros adequados, para que a estrutura pense que está bem.

aha, já está!

e depois puxar uma estrutura em vez de uma referência de matriz através de funções.

a estrutura é uma espécie de estrutura destacada da matriz, mas ainda se podem obter dados de

ArrayStore::double x[];
 
sergeev:
Bingo! :)
 
Agora só falta descolar :)
 
sergeev:
agora só falta descolar :)
Consegue sentir a perspectiva? Teoricamente, poderia fazer o mesmo com qualquer coisa, incluindo objectos.
 
TheXpert:
Consegue obter uma perspectiva? Teoricamente, a mesma coisa pode ser feita a qualquer coisa, incluindo objectos.

Não o aconselharia a obter uma perspectiva. :))

Sentei-me com o vosso problema durante algum tempo, e algo ficou resolvido.

os dois primeiros bytes são do tipo array (int).

segundo dois bytes - pouco claro.

os dois terceiros - número de bytes no elemento de dados (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


Depois há quatro [ulong][ulong][ulong][ulong][ulong][ulong][ulong][ulong] numa fila.

depois o tamanho do amortecedor reservado.

e depois um ponteiro tampão (ainda não verificado).

o resto não é claro, talvez uma reserva, mas não com certeza

 

Sim. Mas isso se excluirmos o memcpy

antes disso, vale a pena verificar se a cópia interna da matriz é mais rápida do que a de memórias

 
MetaDriver:

Sentei-me com o seu problema durante algum tempo, algo esclarecido.

Oh, os meus truques para si, apenas a começar a cavar.
 
sergeev:

Sim. Mas isso se excluirmos o memcpy

antes disso, vale a pena verificar se a cópia interna da matriz é mais rápida do que a de memórias

Sim, devemos. Se a memória é comparável à cópia de uma série de, digamos, 500.000, provavelmente não faz sentido.
 

MetaDriver:

mais confusão, possivelmente uma reserva, mas não uma certeza

Também deveria haver uma bandeira da série AsSeries e possivelmente algumas outras.
Razão: