Usa i termini "vector" o "array" nella discussione ad alto livello del codice C ++

1

Quando scrivo la documentazione di alto livello su ciò che fa un algoritmo, io uso il termine "array" per riferirsi alla struttura dati su cui l'algoritmo opera anche se la struttura dati effettiva è un std::vector . Sento che usare il termine "vettore" in questo contesto non trasmette (per me) meglio il significato che sto dopo, che è "una sequenza di elementi con accesso casuale a tempo costante" o forse più in generale "un array dinamico". Esiste una convenzione o uno standard di documentazione comune per questa distinzione di termini simili?

    
posta Alan Turing 10.06.2011 - 01:00
fonte

4 risposte

2

Non conosco nessuna nomenclatura standard, ma come l'OP, preferisco usare "array" o "array dinamico" per qualcosa che ha accesso casuale a tempo costante, senza specificare il meccanismo.

Anche se STL usa il termine "vettore", provengo da un background di matematica / chimica e faccio molta grafica 2D / 3D. In quei campi, quando dici "vettore" in modo generico, ha il significato di algebra lineare: un punto in uno spazio vettoriale N-dimensionale. Quando uso "vector" nel senso STL, mi riferisco sempre a quel contenitore di template STL specifico.

Per me, "elenco" quando applicato ai contenitori implica "elenco collegato", che non ha accesso casuale a tempo costante. Come Neil Butterworth, uso raramente std :: list.

    
risposta data 10.06.2011 - 01:23
fonte
2

In primo luogo, conosci il tuo pubblico!

Capisco da dove vieni, ma Se stai scrivendo a persone C ++, Usa vettore. Un programmatore C ++ potrebbe sapere cosa intendi per vettore. All'interno del contesto C ++, Se stai chiamando un vettore un array, potrebbe essere fonte di confusione per alcuni. SE vuoi ancora usare il nome "Array", allora ti suggerirò di make una nota che non fai distinzione tra array statici e dinamici.

Se parli con persone non tecniche, usa l'elenco delle parole o qualcosa di più semplice che trasmettere il messaggio (proverei ancora a definire il vettore perché potrebbero ottenere dei dati tecnici più tardi.)

Buona fortuna!

    
risposta data 10.06.2011 - 01:53
fonte
1

Tutti noi abbiamo le nostre piccole idiosincrasie di codifica, ma ... vieni uomo!

Stai usando un vettore, perché lo chiameresti un array? Sono due cose diverse.

Un "array" non è un concetto universalmente conosciuto. Cioè, non puoi andare da una persona a caso, chiedere loro che cos'è un array e aspettarti che lo sappiano. In che modo questa particolare parola trasmette il concetto di "una raccolta di elementi con accesso casuale a tempo costante" meglio di "vettore"?

Abbi più fiducia nei tuoi colleghi. Chiunque guardi il tuo codice chissà che cos'è un array dovrebbe sapere cos'è un vettore. E se non lo fanno, hai problemi più grandi.

    
risposta data 10.06.2011 - 01:26
fonte
1

Interessante. Uso sempre il termine "elenco" così com'è (quasi) la forma più degenerata di una raccolta, e quindi la più generale. Non uso quasi mai std :: list nel mio codice C ++. però. Come un vero esempio dal mio codice:

 typedef std::vector <unsigned int> FieldList;
    
risposta data 10.06.2011 - 01:06
fonte

Leggi altre domande sui tag