Bibliothèque de classes génériques - bogues, description, questions, caractéristiques d'utilisation et suggestions - page 23
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
La fonction est déclarée globalement. Pour cette raison, il y a un conflit avec leur comparaison par les utilisateurs.
Pour réduire les conflits de noms, l'auteur pourrait-il faire de toutes les fonctions auxiliaires globales de Generic des public-static-methods ?
fxsaber:
Pour réduire les conflits de noms, l'auteur pourrait-il faire de toutes les fonctions auxiliaires globales de Generic des public-static-methods ?
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bogue de compilation : 'operator=' - la structure a des objets et ne peut pas être copiée
C'est pour le moment. Si vous voulez inclure la bibliothèque de quelqu'un, vous découvrirez que l'auteur écrit aussi "primitif" que vous, en utilisant les mêmes noms de classes et de fonctions.
Je vais les clouer avec des macros.
Je ne parlais pas de moi.
J'ai lu toutes les pages de la discussion mais je ne comprends toujours pas comment l'utiliser ?
Quelqu'un peut-il me donner des exemples ?
J'ai lu toutes les pages de la discussion mais je ne comprends toujours pas comment l'utiliser ?
Quelqu'un peut-il me donner des exemples ?
Oublie ça. Vous ne pouvez pas l'utiliser tel qu'il est maintenant. Utilisez plutôt le standard CObject + CDictionary. Pour la plupart des tâches, c'est suffisant.
Question sur la récupération d'une valeur par clé. Dans le code de la bibliothèque, cette méthode ressemble à ceci
Les outils de navigation ME (ALT+G et CTRL+-) par source refusent de fonctionner dans cette bibliothèque. Il est donc très difficile de retracer la logique. En particulier, je n'ai pas encore trouvé la valeur initiale dans la boucle en surbrillance. Mais il est entendu que s'il y a une vitesse, cette valeur doit être bien inférieure au nombre de touches.
Veuillez clarifier l'idée, quelle est la vitesse atteinte dans cette fonction ? La surenchère est clairement présente. Mais apparemment c'est court pour une raison quelconque.
SZ J'ai parcouru mon débogueur étape par étape. Tout est clair dans l'exemple TKey = int : m_bucket[Array[i]] = i. Seules les collisions lorsque Array[i] == Array[j] (i != j) ne sont pas claires.
La question porte sur l'obtention de la valeur par la clé. Dans le code de la bibliothèque, cette méthode ressemble à ceci
Veuillez clarifier l'idée, qu'est-ce qui rend cette fonction rapide ? Le dépassement est évidemment présent. Mais apparemment c'est court pour une raison quelconque.
À un moment donné, j'ai passé en revue et décrit le fonctionnement deCHashMap
. Vous devez rechercher les entrées, probablement dans ce fil de discussion.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Bibliothèque de classes génériques - bugs, description, questions, particularités d'utilisation et suggestions
Sergey Dzyublik, 2017.12.11 13:41
Décrire brièvement la mise en œuvre actuelle deCHashMap:
Tout d'abord, découvrons ce qu'estEntry<TKey,TValue>.
Essentiellement, il s'agit d'un nœud, comme dans CLinkedList, qui contient :
m_entries[] - tableau de "cellules" où la clé et la valeur ajoutées, le hash_code, le suivant sont placés. La taille du tableau correspond à la capacité.
m_count - indique l'indice de la première cellule inutilisée dans m_entries. La valeur initiale est 0, elle augmente jusqu'à la capacité, puis elle reconstruit toutes les matrices en augmentant la capacité et la taille de toutes les matrices.
m_buckets[] - tableau d'index sur m_entries[]. La valeur par défaut est -1. La taille du tableau correspond à la capacité.
Pas de collision, ajout d'une valeur unique au conteneurCHashMap :
Sans collisions, récupérer la valeur par clé dans le conteneurCHashMap:
Résolution des collisions :
Collision, obtenir la valeur par clé dans le conteneurCHashMap:
Suppression d'une valeur du conteneurCHashMap:
Reconstruction de la table de hachage (processus d'augmentation de la capacité) :
Comportement décrit à partir de2017.12.11
Actuellement, peut avoir ajouté/modifié certains détails/coefficients.
J'ai à un moment donné démonté et décrit le fonctionnement deCHashMap
. Vous devez chercher les entrées, probablement dans ce fil de discussion.
Je l'ai trouvé sur
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Bibliothèque des classes génériques - erreurs, descriptions, questions, particularités d'utilisation et suggestions
Sergey Dzyublik, 2017.12.07 14:21
Dans cet exemple, le hash est la date de naissance de l'élève.
Nous avons une armoire avec 365 étagères contenant les journaux intimes des élèves.
Nous avons placé chaque journal sur l'étagère correspondant à l'anniversaire de l'élève.
Nous avons besoin du journal de l'élève Petrov et nous savons quand il est né.
Maintenant, grâce à la date de naissance dans O(1), nous pouvons facilement trouver le journal de Petrov, ainsi que le journal de tout autre étudiant.
L'exception est lorsque deux élèves ont la même date d'anniversaire - cela s'appelle une collision.
Résoudre une collision, c'est utiliser les informations supplémentaires pour trouver lequel de deux ou plusieurs journaux nous avons besoin.
La résolution de collisions par le biais d'une liste consiste simplement à parcourir toutes les entrées de la collision une par une pour trouver une correspondance. Déchirez chaque journal et voyez à qui il appartient.
Une sous-rubrique organise une table de hachage des éléments impliqués dans la collision, mais selon un critère différent. Par exemple, selon l'heure de naissance de l'élève.
Si le sujet vous intéresse - je conseille un cours de MailRu sur youtube sur les algorithmes et les structures de données.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
Bibliothèque des classes génériques - erreurs, description, questions, particularités d'utilisation et suggestions
Sergey Dzyublik, 2017.12.08 14:40
Les bases de ce sujet sont pour les paresseux :
https://www.slideshare.net/mkurnosov/6-32402313
En réalité, c'est beaucoup plus compliqué et cela est abordé dans la littérature pertinente ou dans les bons cours d'"algorithmes et structures de données".
Merci, le débogage a aidé. Il existe de petites listes pour les collisions. J'ai parcouru le fil et j'ai été horrifié. Il s'avère que j'étais dans le sujet...
A partir de maintenant, il se peut que certains détails/coefficients aient été ajoutés/changés.
Merci beaucoup ! Votre description m'a beaucoup aidé.