Biblioteca de classes genéricas - bugs, descrição, perguntas, recursos de uso e sugestões - página 15

 
Vasiliy Sokolov:

Há várias vantagens na solução proposta para o dicionário, a mais importante das quais não é totalmente óbvia à primeira vista. Quando escrevemos códigos como este:

Estamos conectados ao próprio código do Expert Advisor. Quando preenchemos o dicionário, fazemo-lo dinamicamente, ou seja, no momento da execução do programa. A abordagem dinâmica dá-nos mais flexibilidade. Por exemplo, os códigos de erro podem estar contidos num ficheiro especial, por exemplo ErrorsCode.txt:

No momento de lançar o programa pode ler este arquivo e preencher o dicionário com os códigos necessários e depois retornar a variante necessária da cadeia de caracteres para o usuário. Pode haver vários arquivos desse tipo: um arquivo por idioma. Desta forma, a localização pode ser realizada, onde são exibidos códigos de erro no idioma do usuário, dependendo do idioma do usuário. Além disso, o próprio utilizador pode traduzir uma vez esses códigos de erro para a sua própria língua e o próprio programa "aprende" a emitir a mensagem desejada na sua língua. É assim que a maioria dos programas são localizados, quando a tradução de um menu está contida em um arquivo de texto e o programa o carrega, dependendo das configurações. Ou seja, sem qualquer recompilação do programa e sem alterar o seu algoritmo, podemos influenciar significativamente a representação dos seus resultados.

Você entende que tais "localizações" são feitas perfeitamente bem sem o HashMap. Ou seja, mais uma vez só a velocidade de busca é uma vantagem aqui. Mas nesta tarefa não precisas dela de todo.

Isto é, deve haver uma tarefa, o que mostrará uma vantagem prática na forma de redução de tempo Otimização. Outros exemplos serão sempre muito privados e igualmente questionáveis. Mas o Optimizer, não se pode discutir.

 
fxsaber:

Você percebe que tais "localizações" são feitas perfeitamente bem sem o HashMap. Ou seja, mais uma vez, a única vantagem é a velocidade de busca aqui. Mas nesta tarefa na prática não é de todo necessário.

Isto é, deve haver uma tarefa, o que mostrará uma vantagem prática na forma de redução de tempo Otimização. Outros exemplos serão sempre muito privados e igualmente questionáveis. Quanto ao Otimizador - não se pode discutir com isso.

A questão, neste caso, não é a velocidade. Mas no exemplo - por assim dizer "para compreender" a essência. E onde aplicar esta "essência" é outra questão.

 
Artyom Trishkin:

Não se trata de velocidade, neste caso. É sobre o exemplo - por assim dizer - "compreender" a essência. E onde aplicar esta "essência" é outra questão.

Eu tenho uma percepção ligeiramente diferente.

 

Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação

Algoritmos, Métodos de Decisão, Comparação do seu Desempenho

Sergey Dzyublik, 2017.12.11 10:41

Nesta tarefa em particular: índice => valor
Seria mais rápido usar oCArrayList do que oCHashMap.

CArrayList ocupa mais de duas vezes menos espaço, também tem menos rearranjos ao adicionar novos elementos(CArrayList tem 2 fatores de crescimento, enquantoCHashMap tem cerca de 1,2 na implementação atual).
E há menos confusão ao ler o resultado daCArrayList.

Ainda não o entendi, apesar das explicações. O meu próprio analfabetismo impede-me de o fazer. Não me atrevi a entrar nas entranhas das bibliotecas - o estilo de implementação/abstração me repugna. Mas vou ter de o fazer, suponho.

 
fxsaber:

Eu tenho uma percepção ligeiramente diferente.

Eu apoio isso. Há muitas coisas legais no mundo, mas nem todas elas são necessárias para o comércio. É assim que é com esta biblioteca. O que é que isso dá ao comerciante?

(Repito a pergunta, porque ou não foi notada ou ninguém sabe porque um comerciante precisa dela)

 
fxsaber:

Isto ainda tem de ser compreendido, apesar das explicações. O meu próprio analfabetismo é um obstáculo. Ainda não me atrevi a entrar nas entranhas das bibliotecas - o estilo de implementação/abstração me repugna. Mas vou ter de o fazer, suponho.


Se você quiser, posso descrever brevemente a arquiteturada implementação doCHashMap- não é trivial.

 
Alexey Oreshkin:

Destacado. Há muitas coisas legais no mundo, mas nem todas elas são necessárias para o comércio. É assim que é com esta biblioteca. O que é que isso dá a um comerciante?

(Vou repetir esta pergunta mais uma vez, porque ou eles não a viram ou ninguém sabe para que serve a um comerciante)


Os contentores dão às pessoas versadas em estruturas de dados uma interface conveniente para o processamento rápido de um determinado conjunto de dados.
Em muitas linguagens de programação os contentores são partes integrantes e directamente integrados na própria linguagem.
Só porque você não sabe como usar algo, não significa que seja inconveniente ou desnecessário.

 
Sergey Dzyublik:

Se estiver interessado, posso descrever brevemente a arquitetura da implementação doCHashMap- não é trivial.

Interessante. E aqui vai uma pergunta. Eu não gostei da implementação actual e já a afinei. Claro, está torto. Como é que recebo a bíblia original?

 
Sergey Dzyublik:


Os contentores dão às pessoas que compreendem as estruturas de dados uma interface conveniente para processar rapidamente uma certa quantidade de dados.
Em muitas linguagens de programação, os contentores são parte integrante e directamente integrados na própria linguagem.
Só porque você não sabe como usar algo, não significa que não seja conveniente ou útil.

Não estou a dizer que não é útil. Estou interessado em saber como isso pode ajudar na negociação. Exactamente no comércio. E não na programação de cavalos esféricos no vácuo. Se eles estavam escrevendo software para estações meteorológicas em µl que exibe previsões meteorológicas - sem perguntas, é claro que é simplesmente necessário e como e onde ele pode ser aplicado.
Alguém pode dar uma resposta específica em relação à negociação?
 
Alexey Oreshkin:
Quem me vai dar uma resposta concreta sobre a negociação?

A velocidade do testador é importante para a negociação? Se sim, então o HashMap também afeta a negociação, pois aumenta a velocidade de desenvolvimento e execução do TS.