C++

Come usare la coda C++

Come usare la coda C++

introduzione

Una coda è una raccolta di elementi, in cui il primo elemento aggiunto all'elenco deve essere il primo elemento da rimuovere successivamente. Quindi, man mano che gli articoli vengono aggiunti alla collezione, sta crescendo di dimensioni, i.e. sta crescendo in lunghezza. Ogni volta che un elemento deve essere rimosso, deve essere il primo aggiunto. Se gli elementi vengono rimossi continuamente, il successivo rimosso è il secondo elemento; il terzo viene rimosso in seguito, e così via.

Dopo che il primo elemento dell'elenco originale è stato rimosso, il secondo diventa il primo elemento. Dopo che il secondo elemento è stato rimosso, il terzo diventa il primo elemento e così via.

Un buon esempio di coda nella vita reale è quando le persone si mettono in fila per aspettare il servizio o il bene. La prima persona viene servita prima dell'ultima. Tuttavia, la coda di cui si parla in questo tutorial è la coda del software, come progettata in C++.

FIFO

FIFO sta per First-In, First-Out. È un altro modo per apprezzare la coda. Ciò significa che il primo elemento ad entrare nell'elenco, è il primo elemento ad essere rimosso, ogni volta che deve avvenire la rimozione. L'inizio dell'elenco è chiamato head o front; la fine della lista si chiama dietro o coda.

Operazioni essenziali

Una coda software deve avere almeno le seguenti operazioni:

Spingere

Questa operazione aggiunge un nuovo elemento in fondo alla coda. Questa operazione è ufficialmente chiamata, enqueue.

cambio

Questa operazione rimuove il primo elemento della coda e il secondo elemento diventa il nuovo primo elemento. Questa operazione è ufficialmente chiamata dequeue. Si chiama pop in Do++.

Questo articolo spiega come utilizzare la struttura dei dati della coda C++. Dovresti conoscere i puntatori e i riferimenti C++ per comprendere il resto di questo articolo.

Classe e oggetti

Una classe è un insieme di variabili e funzioni che lavorano insieme, in cui le variabili non hanno valori assegnati a. Quando i valori sono assegnati alle variabili, la classe diventa un oggetto. Valori diversi dati alla stessa classe danno come risultato oggetti diversi; cioè, oggetti diversi sono la stessa classe con valori diversi. Si dice che creare un oggetto da una classe sia creare un'istanza dell'oggetto.

Il nome, coda, è una classe. Un oggetto creato dalla classe della coda ha un nome scelto dal programmatore.

È necessaria una funzione che appartiene a una classe per istanziare un oggetto dalla classe. In C++, quella funzione ha lo stesso nome del nome della classe. Gli oggetti creati (istanziati) dalla classe hanno nomi diversi dati loro, dal programmatore.

Creare un oggetto dalla classe significa costruire l'oggetto; significa anche istanziare.

Un programma C++ che utilizza la classe queue, inizia con le seguenti righe all'inizio del file:

#includere
#includere
usando lo spazio dei nomi std;

La prima riga è per input/output. La seconda riga è quella di consentire al programma di utilizzare tutte le funzionalità della classe coda. La terza riga consente al programma di utilizzare i nomi nello spazio dei nomi standard.

Sovraccarico di una funzione

Quando due o più firme di funzioni diverse hanno lo stesso nome, si dice che quel nome è sovraccarico. Quando viene chiamata una funzione, il numero e il tipo di argomenti determinano quale funzione viene effettivamente eseguita.

Costruzione

coda nome()

La seguente dichiarazione istanzia una coda denominata, que di tipo int.

coda qua;

La coda è vuota. La dichiarazione inizia con la parola riservata, coda seguita da parentesi angolari con il tipo di dati. Quindi hai il nome dato al programmatore per la coda.

Costruire con l'elenco degli inizializzatori

La seguente definizione mostra come creare una coda con l'elenco degli inizializzatori:

coda que(1.1, 2.2, 3.3, 4.4);

Distruggere una coda

Per distruggere una coda, lasciala uscire dal campo di applicazione.

Accesso agli elementi della coda

premere (valore)

Una coda è una lista First-In-First-Out. Quindi, ogni valore viene aggiunto dal retro. Il seguente segmento di codice crea una coda vuota, dopo di che vengono aggiunti cinque valori float dal retro:

coda qua;
que.premere (1.1);
que.premere (2.2);
que.premere (3.3);
que.premere (4.4);
que.premere (5.5);

dimensione() const

Questo restituisce il numero di elementi nella coda. Il codice seguente illustra:

coda qua;
que.premere (1.1); que.premere (2.2); que.premere (3.3); que.premere (4.4); que.premere (5.5);
cout << que.size() << '\n';

L'uscita è 5.

davanti()

Questo restituisce un riferimento al primo elemento della coda, senza rimuovere l'elemento. L'output del seguente codice è 1.1.

coda qua;
que.premere (1.1); que.premere (2.2); que.premere (3.3); que.premere (4.4); que.premere (5.5);
cout << que.front() << '\n';

L'elemento non viene rimosso dalla coda.

front() const

Quando la costruzione della coda è preceduta da const, viene eseguita l'espressione “front() const” invece di “front()”. Viene utilizzato nel codice seguente, ad esempio.

const coda que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';

Viene restituito un riferimento costante. L'elemento non viene rimosso dal vettore. Gli elementi della coda non possono essere modificati.

indietro()

Questo restituisce un riferimento all'ultimo elemento della coda, senza rimuovere l'elemento. L'output del seguente codice è 5.5.

coda qua;
que.premere (1.1); que.premere (2.2); que.premere (3.3); que.premere (4.4); que.premere (5.5);
cout << que.back() << '\n';

indietro() const

Quando la costruzione della coda è preceduta da const, viene eseguita l'espressione “back() const” invece di “back()”. Viene utilizzato nel codice seguente, ad esempio.

const coda que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.back() << '\n';

Viene restituito un riferimento costante. L'elemento non viene rimosso dalla coda. Con il const precedente per la costruzione della coda, gli elementi nella coda non possono essere modificati.

Capacità della coda

dimensione() const

- vedi sopra

vuoto() const

Questo restituisce 1 per vero se non ci sono elementi nella coda o 0 per falso se la coda è vuota. Il codice seguente lo illustra:

coda que1 (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que1.empty() << '\n';
coda que2;
cout << que2.empty() << '\n';

L'uscita è:

0
1

Modificatori di coda

pop()

Una coda è FIFO, quindi qualsiasi elemento che deve essere rimosso deve essere rimosso dalla parte superiore (testa) della coda. Questa funzione membro rimuove il primo elemento senza restituirlo. Il codice seguente lo illustra:

coda que (1.1, 2.2, 3.3, 4.4, 5.5);
cout << que.front() << '\n';
que.pop();
cout << que.size() << '\n';

L'uscita è:

1.1
4

un.scambiare (b)

È possibile scambiare due code, come illustrato in questo segmento di codice:

coda que1(1.1, 2.2, 3.3, 4.4, 5.5);
coda que2(10, 20);
que1.scambiare(que2);
cout << "First element and size of que1:
"<< que1.front() <<", "<< que1.size() << '\n';
cout << "First element and size of que2 "<<
que2.davanti() <<", "<< que2.size() << '\n';

L'uscita è:

Primo elemento e dimensione di que1: 10, 2

Primo elemento e dimensione di que2: 1.1, 5

Nota che la lunghezza di una coda viene aumentata se necessario. Inoltre, i valori che non hanno avuto sostituzioni, vengono sostituiti da un valore predefinito. I tipi di dati devono essere dello stesso tipo.

Operatori di uguaglianza e relazionali per le code

Per i caratteri ordinari in C++, in ordine crescente, i numeri vengono prima delle lettere maiuscole, che vengono prima delle lettere minuscole. Il carattere spazio viene prima dello zero e tutti loro.

Operatori di uguaglianza

Restituisce 1 per vero e 0 per falso.

L'operatore ==

Restituisce 1 se le due code hanno la stessa dimensione e gli elementi corrispondenti sono uguali; altrimenti restituisce 0. Esempio:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int numero = que1 == que2;
cout << num << '\n';

L'uscita è: 0.

Il != Operatore

- contrario di quanto sopra. Esempio:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int num = que1 != que2;
cout << num << '\n';

L'uscita è: 1.

Operatori Relazionali

Restituisce 1 per vero e 0 per falso.

Il < Operator

Restituisce 1 se la prima coda è il sottoinsieme iniziale della seconda coda, con gli elementi delle due porzioni uguali uguali e nello stesso ordine. Se entrambe le code sono della stessa dimensione o di dimensioni diverse e spostandosi da sinistra a destra, viene rilevato un elemento nella prima coda che è inferiore all'elemento corrispondente nella seconda coda, verrà comunque restituito 1. Altrimenti viene restituito 0. Esempio:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int num = que1 < que2;
cout << num << '\n';

L'uscita è 1. < does not include the case when the size and order are the same.

Il > Operatore

- contrario di quanto sopra. Esempio:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int numero = que1 > que2;
cout << num << '\n';

Uscita: 0

Il <= Operator

- uguale a < but includes the case when the size and order are the same. Example:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int num = que1 <= que2;
cout << num << '\n';

Uscita: 1

L'operatore >=

- contrario di quanto sopra. Esempio:

coda que1("gentile", "qualcos'altro");
coda que2("malvagio");
int numero = que1 >= que2;
cout << num << '\n';

Uscita: 0

Classe e i suoi oggetti istanziati

Un valore sta a un tipo di dati, come un oggetto istanziato sta a una classe. La costruzione della coda può anche accettare una classe come tipo di dati. Il seguente programma lo illustra:

#includere
#includere
usando lo spazio dei nomi std;
classe TheCla

pubblico:
numero int;
carattere statico;
void func (char cha, const char *str)

cout << "There are " << num << " books worth " << cha << str << " in the store." << '\n';

divertimento vuoto statico (char ch)

se (ch == 'a')
cout << "Official static member function" << '\n';

;
intero principale()

TheCla obj1; TheCla obj2; TheCla obj3; TheCla obj4; TheCla obj5;
coda qua;
que.push(obj1); que.push(obj2); que.push(obj3); que.push(obj4); que.push(obj5);
cout << que.size() << '\n';
restituisce 0;

L'uscita è 5.

Lista collegata

L'elenco delle code è tecnicamente chiamato elenco collegato. Ci sono due tipi di liste collegate per la coda: lista concatenata singola e lista concatenata doppia.

Un elemento di lista con link singolo può essere implementato da una struttura di due membri. Un membro contiene un puntatore all'elemento successivo e l'altro membro contiene il datum (singolare per i dati).

Un elemento di lista doppiamente collegato può essere implementato da una struttura di tre membri. Il membro centrale contiene il datum, mentre il primo e il terzo membro tengono i puntatori ai loro elementi adiacenti.

Applicazioni della coda

La coda è una struttura dati first-in-first-out. Ci sono situazioni nell'informatica in cui i dati arrivano sotto forma di coda, che richiedono un comportamento first-in-first-out.

Condivisione delle risorse del computer

Una risorsa in un computer è qualsiasi componente fisico o virtuale di disponibilità limitata. Includono la CPU, la scheda video, il disco rigido e la memoria. La condivisione di una tale risorsa richiede una coda.

Gestione delle interruzioni

Le periferiche del computer devono interrompere di tanto in tanto il computer. Le interruzioni devono essere gestite nello stesso modo in cui sono arrivate. Questo ha bisogno di una coda.

Gestire le informazioni.

La coda può essere utilizzata, ad esempio, per gestire i file dell'applicazione per un lavoro, se i file sono memorizzati nel computer.

Conclusione

Una coda è una struttura di dati di lista, che può essere una lista con un collegamento singolo o una lista con un doppio collegamento. Di norma, il primo elemento che entra nell'elenco è il primo elemento che esce. C++ fornisce una struttura di dati di coda nella sua libreria standard. Le categorie di funzioni membro e operatori disponibili per questa struttura sono la costruzione della coda, l'accesso agli elementi della coda, la capacità della coda, i modificatori della coda e gli operatori di sovraccarico della coda.

Qualsiasi struttura di dati della coda deve fornire almeno le funzioni membro push() e pop(). push() significa inviare un nuovo elemento in fondo alla coda; e pop() significa, rimuovere l'elemento che si trova in cima alla coda. Sfortunatamente, in C++, queste funzioni non restituiscono il valore inserito o estratto. Quindi, per conoscere l'ultimo elemento prima di spingere, deve essere usata la funzione extra back(); e per conoscere il primo elemento prima del pop, deve essere usata la funzione extra front().

Un valore sta a un tipo di dati, come un oggetto istanziato sta a una classe. Quindi, una classe particolare può essere utilizzata come tipo di dati per l'istanza del modello di coda. Oggetti diversi per la classe diventano come valori diversi per la classe.

La coda ha applicazioni sul computer. Può essere utilizzato, ad esempio, per gestire i file dell'applicazione per un lavoro, se i file sono memorizzati nel computer.

cris

Il tasto sinistro del mouse non funziona su Windows 10
Se stai utilizzando un mouse dedicato con il tuo laptop o computer desktop ma il il tasto sinistro del mouse non funziona su Windows 10/8/7 per qualch...
Il cursore salta o si sposta in modo casuale durante la digitazione in Windows 10
Se scopri che il cursore del mouse salta o si sposta da solo, automaticamente, in modo casuale durante la digitazione nel laptop o nel computer Window...
Come invertire la direzione di scorrimento del mouse e dei touchpad in Windows 10
Topo e Touchpads non solo rende l'elaborazione semplice, ma anche più efficiente e richiede meno tempo. Non possiamo immaginare una vita senza questi ...