Czytam implementację kolejki z niektórych książek algorytmu, istnieje nowy/interesujący mnie fragment, którego nie rozumiem. Myślę, że jest to coś nowego jak lista inicjalizacyjna dla wektora w C++ 11, ale nie jestem pewny ze względu na kontekst kodu. Czy ktoś może rzucić światło lub podać jakieś odniesienie?Co to jest parametr nawias klamrowy w konstruktorze 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
//...
}
Częścią budzącą wątpliwości są dane ({cap}), co to jest? Zmienia rozmiar wektora na wielkość czapki? (Oczywiście autor kodu zamierza podać dane o wielkości przykrywki podczas konstruowania.)
EDYCJA: po przeczytaniu pierwszej odpowiedzi i testu wiemy, że książka zawierała błąd we fragmencie. Zamierza podać początkowy pułap, ale użył błędnego {}.
http://en.cppreference.com/w/cpp/utility/initializer_list – BoBTFish
[C++ 11 Fun z listami inicjatora, tablicami i wyliczeniami] (http://stackoverflow.com/questions/8606315/c11-fun-withinitializer-lists-arrays-and-enumerations). Powinieneś prawdopodobnie skonsultować się z referencją C++ przed zadawaniem pytań. Na podstawowe pytania dotyczące składni można odpowiedzieć w ten sposób. –
'{cap}' powinno być pustą listą o rozmiarze 8, jeśli się nie mylę; więc zainicjuje go z domyślną długością 8 .... lub listą z elementem 8, więc skończysz z tym. – Shark