Ajuda com o OOP - página 9

 
fxsaber #:

Não se trata da minha implementação. Você pode medi-lo à moda antiga.

Eu já o fiz. Os dados são publicados. Vou tentar novamente em outra ordem. Mas mesmo de acordo com seus dados, não há desempenho de trabalhar com um asterisco.
 
Entretanto, gostaria de ouvir uma opinião fundamentada a favor de trabalhar com sinalizadores. Tudo o que tem sido expresso até agora é: "supostamente mais rápido", "supostamente obriga o programador a observar a memória e não alocar espaço desnecessário" e "você é um tolo".
 
Vasiliy Sokolov #:
No entanto, gostaria de ouvir uma opinião fundamentada em apoio ao trabalho com indicações. Tudo o que tem sido expresso até agora é: "alegadamente mais rápido", "alegadamente faz os programadores observarem a memória e não alocarem espaço desnecessário" e "você é um tolo" - é claro.

A esquerda-direita também está confusa ou não?

É apenas uma confusão ultrajante na cabeça. Os ponteiros são mais lentos, não mais rápidos. Sobre a necessidade de estar atento à memória, a conversa foi no contexto das diferenças de estilo de programação em linguagens com e sem Garbage Collector.

Vasya, você não se lembra que posição tomou na discussão depois de 2-3 postos já, está indo por este e por aquele caminho.

 
fxsaber #:

Um exemplo de um problema potencial seria bom.

Ihor Herasko #:

Mais um ponto. É melhor criar matrizes de objetos por meio de um ponteiro. Caso contrário, você obterá uma matriz na memória de empilhamento que é muito baixa:

Eu tinha um exemplo de exaustão da memória da pilha somente em caso de classificação recursiva com grande quantidade de dados.
O programa acabou de ser suspenso.

Além disso, você pode usar a declaração global e, neste caso, não se trata de memória de empilhamento.
Você não concorda?

 
Ihor Herasko #:

Não é um problema, muito menos um problema potencial. São apenas as peculiaridades do manejo da memória na MT. Aqui está uma matriz estática:

E aqui está uma matriz dinâmica:

Neste caso, tudo se compila e funciona.

Concordo, mas nunca tive tais volumes em minha prática.
Como regra, eu preciso de um cálculo rápido de um indicador "cauda", por exemplo, sem chamar a função de indicador (biblioteca) em si,
, portanto, eu apliquei um cálculo mais rápido baseado em fórmulas de valores indicadores. Neste caso, o consumo de memória em geral é muito baixo.
Em geral, recomendo esta abordagem a todos os desenvolvedores no futuro para economizar memória e tempo de cálculo das funções de ponto flutuante.
Se possível, muitos dados devem ser convertidos em formato inteiro - isso realmente acelera o processo.

P.S.: É claro que o acima mencionado é um caso de economia, por exemplo, de algumas centenas de milissegundos.

 
Dmitiry Ananiev:

Estou fazendo uma aula como esta.

Agora eu quero chamar uma matriz de objetos:

Como então criar rapidamente um conjunto de objetos se o construtor tem parâmetros a nível global?

Por exemplo? criar objetos primeiro mudando o construtor e depois como substituir os objetos no OnInit por símbolos?

Pode haver uma solução mais fácil?

class Strategy1
{
        Strategy1();
 };

class Strategy2
{
        Strategy (string sym);
}

Na declaração da classe Strategy2, o nome do construtor da classe em si carece de "2", caso contrário, não é um construtor.