Libreria di classi generiche - bug, descrizione, domande, caratteristiche d'uso e suggerimenti - pagina 23
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
La funzione è dichiarata globalmente. Per questo motivo c'è un conflitto con il loro Confronto da parte degli utenti.
Per ridurre i conflitti di denominazione, l'autore potrebbe rendere tutte le funzioni ausiliarie globali generiche pubbliche-statiche-metodi?
fxsaber:
Per ridurre i conflitti di denominazione, l'autore potrebbe rendere tutte le funzioni ausiliarie globali generiche pubbliche-statiche-metodi?
Forum sul trading, sistemi di trading automatico e test di strategia
Bug del compilatore: 'operator=' - la struttura ha oggetti e non può essere copiata
Questo è per il momento. Se volete includere la libreria di qualcuno, scoprirete che l'autore scrive in modo "primitivo" come voi, usando gli stessi nomi di classi e funzioni.
Li inchioderò con le macro.
Non stavo parlando di me stesso.
Ho letto tutte le pagine della discussione ma non ho ancora capito come si usa?
Qualcuno può darmi qualche esempio?
Ho letto tutte le pagine della discussione ma non ho ancora capito come si usa?
Qualcuno può darmi qualche esempio?
Dimenticalo. Non si può usare così com'è ora. Usate invece il CObject + CDictionary standard. Per la maggior parte dei compiti, è sufficiente.
Domanda sul recupero di un valore per chiave. Nel codice della libreria, questo metodo si presenta così
Gli strumenti di navigazione ME (ALT+G e CTRL+-) per fonte si rifiutano di funzionare in questa libreria. Perciò è molto difficile rintracciare la logica. In particolare, non ho ancora capito il valore iniziale nel ciclo evidenziato. Ma c'è l'intesa che se c'è una velocità, questo valore dovrebbe essere molto inferiore al numero di chiavi.
Per favore, chiarite l'idea, qual è la velocità raggiunta in questa funzione? L'overkill è chiaramente presente. Ma a quanto pare è breve per qualche motivo.
SZ Sono passato attraverso il mio debugger passo dopo passo. Tutto chiaro sull'esempio TKey = int: m_bucket[Array[i]] = i. Solo le collisioni quando Array[i] == Array[j] (i != j) non sono chiare.
La domanda riguarda l'ottenimento del valore in base alla chiave. Nel codice della libreria questo metodo si presenta così
Per favore, chiarite l'idea, cosa rende questa funzione veloce? L'overshoot è ovviamente presente. Ma a quanto pare è breve per qualche motivo.
Una volta stavo rivedendo e descrivendo come funzionaCHashMap
Devi cercare le voci, probabilmente in questo thread.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Libreria di classi generiche - bug, descrizione, domande, peculiarità d'uso e suggerimenti
Sergey Dzyublik, 2017.12.11 13:41
Brevemente sull'attuale implementazione diCHashMap:
Per prima cosa, scopriamo cos'èEntry<TKey,TValue>.
Essenzialmente è un nodo come in CLinkedList che contiene:
m_entries[] - array di "celle" dove sono posizionati chiave e valore aggiunti, hash_code, next. La dimensione dell'array corrisponde alla Capacità.
m_count - specifica l'indice della prima cella inutilizzata in m_entries. Il valore iniziale è 0, che cresce fino alla capacità, il prossimo è la ricostruzione di tutti gli array con l'aumento della capacità e delle dimensioni di tutti gli array.
m_buckets[] - array di indici su m_entries[]. Il valore predefinito è -1. La dimensione della matrice corrisponde alla capacità.
Nessuna collisione, aggiungendo un valore unico al contenitoreCHashMap:
Senza collisioni, ottenere il valore per chiave nel contenitoreCHashMap:
Risoluzione delle collisioni:
Collisione, ottenere il valore per chiave nel contenitoreCHashMap:
Rimozione di un valore dal contenitoreCHashMap:
Ricostruire la tabella hash (processo di aumento della capacità) :
Comportamento descritto da2017.12.11
Attualmente, potrebbe aver aggiunto/modificato alcuni dettagli/coefficienti.
Una volta ho smontato e descritto come funziona laCHashMap
Devi cercare le voci, probabilmente in questo thread.
L'ho trovato su
Forum sul trading, sistemi di trading automatico e test di strategia
Libreria di classi generiche - errori, descrizioni, domande, peculiarità d'uso e suggerimenti
Sergey Dzyublik, 2017.12.07 14:21
In questo esempio l'hash è il compleanno dello studente.
Abbiamo un armadio con 365 ripiani che contengono i diari degli studenti.
Abbiamo messo ogni diario sullo scaffale corrispondente al compleanno dello studente.
Abbiamo bisogno del diario dell'allievo Petrov e sappiamo quando è nato.
Ora con la data di nascita in O(1) possiamo facilmente trovare il diario di Petrov, così come il diario di qualsiasi altro studente.
L'eccezione è quando due studenti hanno lo stesso compleanno - questo si chiama collisione.
Risolvere una collisione significa usare le informazioni extra per trovare quale di due o più riviste ci serve.
La risoluzione delle collisioni attraverso una lista è semplicemente passare attraverso tutte le voci della collisione una per una per trovare una corrispondenza. Strappa ogni diario e vedi di chi è.
Una sottovoce sta organizzando una tabella hash degli elementi coinvolti nella collisione, ma secondo un criterio diverso. Per esempio in base all'ora di nascita dello studente.
Se siete interessati all'argomento - vi consiglio un corso di MailRu su youtube su algoritmi e strutture dati.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
Libreria di classi generiche - errori, descrizione, domande, peculiarità d'uso e suggerimenti
Sergey Dzyublik, 2017.12.08 14:40
Le basi di questo argomento sono per i pigri:
https://www.slideshare.net/mkurnosov/6-32402313
In realtà è molto più complicato e viene discusso nella letteratura pertinente o in buoni corsi di "algoritmi e strutture dati".
Grazie, il debug ha aiutato. Ci sono piccole liste per le collisioni. Ho letto il thread e sono rimasto inorridito. Risulta essere stato in tema...
A partire da ora, potrebbe aver aggiunto/modificato alcuni dettagli/coefficienti.
Grazie mille! Mi ha aiutato molto la tua descrizione.