Ho letto un'implementazione di una coda da alcuni libri dell'algoritmo, c'è uno snippet che è nuovo/interessante per me che non ho capito. Penso che sia qualcosa di nuovo come l'elenco di inizializzazione per il vettore in C++ 11, ma non sono così sicuro a causa del contesto del codice. Qualcuno può far luce o fornire qualche riferimento?Qual è il parametro parentesi graffa nel costruttore di C++ 11
template <typename T>
class Queue {
private:
size_t head, tail, count;
vector<T> data;
public:
Queue(const size_t &cap=8) : head(0),tail(0),count(0),data({cap}) {}
//... more interfaces
//...
}
la parte discutibile è data ({cap}), che cos'è? Ridimensiona il vettore a una capacità di cap? (Ovviamente l'autore del codice si propone di fornire i dati di una dimensione del tappo durante la costruzione di esso.)
EDIT: dopo di leggere la prima risposta e di prova, sappiamo che il libro ha avuto errore nel frammento. Si intende fornire un cap iniziale, ma ha usato errato {}.
http://en.cppreference.com/w/cpp/utility/initializer_list – BoBTFish
[C++ 11 Fun con elenchi di inizializzatori, matrici ed enumerazioni] (http://stackoverflow.com/questions/8606315/c11-fun-with-initializer-lists-arrays-and-enumerations). Probabilmente dovresti consultare un riferimento C++ prima di fare domande. Le domande di sintassi di base possono essere risolte in questo modo. –
'{cap}' dovrebbe essere una lista vuota di dimensione 8 se non mi sbaglio; quindi lo inizializzerà con una lunghezza predefinita di 8 .... o una lista con l'elemento 8, quindi finirai con quello. – Shark