Bibliothèque de classes génériques - bogues, description, questions, caractéristiques d'utilisation et suggestions - page 15

 
Vasiliy Sokolov:

La solution proposée pour le dictionnaire présente plusieurs avantages, dont le plus important n'est pas entièrement évident au premier abord. Quand on écrit du code comme ça :

Nous sommes câblés dans le code du conseiller expert lui-même. Lorsque nous remplissons le dictionnaire, nous le faisons de manière dynamique, c'est-à-dire au moment de l'exécution du programme. L'approche dynamique nous donne plus de flexibilité. Par exemple, les codes d'erreur peuvent être contenus dans un fichier spécial, par exemple ErrorsCode.txt :

Au moment du lancement, le programme peut lire ce fichier et remplir le dictionnaire avec les codes requis, puis renvoyer la variante requise de la chaîne à l'utilisateur. Il peut y avoir plusieurs fichiers de ce type : un fichier par langue. Il est ainsi possible d'effectuer une localisation, où les codes d'erreur sont affichés dans la langue de l'utilisateur, en fonction de la langue de ce dernier. En outre, l'utilisateur peut traduire lui-même ces codes d'erreur dans sa propre langue une fois, et le programme lui-même "apprend" à émettre le message souhaité dans sa langue. C'est ainsi que la plupart des programmes sont localisés, lorsque la traduction d'un menu est contenue dans un fichier texte et que le programme le charge, en fonction des paramètres. C'est-à-dire que sans aucune recompilation du programme et sans changer son algorithme, nous pouvons influencer de manière significative la représentation de ses résultats.

Vous comprenez, que de telles "localisations" se font parfaitement bien sans HashMap. En d'autres termes, seule la vitesse de recherche est un avantage. Mais dans cette tâche, vous n'en avez pas besoin du tout.

C'est-à-dire qu'il doit y avoir une tâche qui présente un avantage pratique sous la forme d'une réduction du temps d'optimisation. D'autres exemples seront toujours très privés et tout aussi discutables. Mais l'Optimiseur, on ne peut pas le contester.

 
fxsaber:

Vous vous rendez compte que de telles "localisations" se font parfaitement bien sans HashMap. C'est-à-dire qu'ici encore, le seul avantage est la vitesse de recherche. Mais dans cette tâche, en pratique, elle n'est pas du tout nécessaire.

C'est-à-dire qu'il doit y avoir une tâche qui présente un avantage pratique sous la forme d'une réduction du temps d'optimisation. D'autres exemples seront toujours très privés et tout aussi discutables. Quant à l'Optimiser, vous ne pouvez pas le contester.

Dans ce cas, ce n'est pas la vitesse qui est en cause. Mais dans l'exemple - pour ainsi dire "comprendre" l'essence. Et où appliquer cette "essence" est une autre question.

 
Artyom Trishkin:

Il ne s'agit pas de vitesse dans ce cas. Il s'agit de l'exemple - pour ainsi dire - pour "comprendre" l'essence. Et où appliquer cette "essence" est une autre question.

J'ai une perception légèrement différente.

 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Algorithmes, méthodes de décision, comparaison de leurs performances

Sergey Dzyublik, 2017.12.11 10:41

Dans cette tâche particulière : index => valeur
Il serait plus rapide d'utiliserCArrayList queCHashMap.

CArrayList prend plus de deux fois moins d'espace, et il y a moins de réarrangements lors de l'ajout de nouveaux éléments(CArrayList a un facteur de croissance de 2, alors queCHashMap a environ 1,2 dans l'implémentation actuelle).
Et il y a moins de problèmes lors de la lecture du résultat deCArrayList.

Je ne l'ai pas encore compris, malgré les explications. Mon propre analphabétisme m'en empêche. Je n'ai pas osé entrer dans les entrailles des bibliothèques - le style implémentation/abstraction me répugne. Mais je vais devoir le faire, je suppose.

 
fxsaber:

J'ai une perception légèrement différente.

Je suis d'accord. Il y a beaucoup de choses sympas dans le monde, mais elles ne sont pas toutes nécessaires au commerce. C'est comme ça avec cette bibliothèque. Que donne-t-il au commerçant ?

(Je répète la question, car soit elle n'a pas été remarquée, soit personne ne sait pourquoi un commerçant en a besoin).

 
fxsaber:

Cela n'a pas encore été compris, malgré les explications. Mon propre analphabétisme est un obstacle. Je n'ai pas encore osé entrer dans les entrailles des bibliothèques - le style implémentation/abstraction me répugne. Mais je vais devoir le faire, je suppose.


Si vous le souhaitez, je peux décrire brièvement l'architecturede l' implémentation deCHashMap- ce n'est pas trivial.

 
Alexey Oreshkin:

Secondé. Il y a beaucoup de choses sympas dans le monde, mais elles ne sont pas toutes nécessaires au commerce. C'est comme ça avec cette bibliothèque. Que donne-t-il à un commerçant ?

(Je vais répéter cette question une fois de plus, car soit cette question n'a pas été remarquée, soit personne ne sait pourquoi un trader en a besoin)


Les conteneurs offrent aux personnes connaissant les structures de données une interface pratique pour le traitement rapide d'un certain ensemble de données.
Dans de nombreux langages de programmation, les conteneurs font partie intégrante du langage lui-même et y sont directement intégrés.
Ce n'est pas parce que vous ne savez pas comment utiliser quelque chose que c'est gênant ou inutile.

 
Sergey Dzyublik:

Si cela vous intéresse, je peux décrire brièvement l'architecture de l'implémentation deCHashMap- ce n'est pas trivial.

Intéressant. Et voici une question. Je n'aimais pas la mise en œuvre actuelle et je l'ai modifiée. Bien sûr, c'est tordu. Comment puis-je obtenir la bible originale ?

 
Sergey Dzyublik:


Les conteneurs offrent aux personnes qui comprennent les structures de données une interface pratique pour traiter rapidement une certaine quantité de données.
Dans de nombreux langages de programmation, les conteneurs font partie intégrante du langage lui-même et y sont directement intégrés.
Ce n'est pas parce que vous ne savez pas comment utiliser quelque chose que cela n'est pas pratique ou utile.

Je ne dis pas que ce n'est pas utile. Je suis intéressé par la façon dont il peut aider dans le commerce. Exactement dans le commerce. Et pas dans la programmation de chevaux sphériques dans le vide. S'ils écrivaient un logiciel pour les stations météorologiques en µl qui affiche les prévisions météorologiques - pas de questions, il est clair que c'est simplement nécessaire et comment et où cela peut être appliqué.
Quelqu'un peut-il donner une réponse spécifique concernant le commerce ?
 
Alexey Oreshkin:
Qui me donnera une réponse concrète sur le commerce ?

La vitesse du testeur est-elle importante pour le trading ? Si oui, alors HashMap affecte également la négociation, car il augmente la vitesse de développement et d'exécution du TS.

Raison: