Trochę więcej informacji: http://en.cppreference.com/w/cpp/utility/initializer_list
std::initializer_list<T> świetnie nadaje się inicjalizowania kontenerów (np. vector), co do tej pory było dość problematyczne. Należy jednak zwrócić uwagę, na problemy z istniejącą składnią (wsteczną kompatybilnością). vector inaczej się zachowa, gdy do konstrukcji użyjemy konstruktora z nawiasami klamerkowymi w celu wstawienia dwóch elementów, a inaczej nawiasów okrągłych (stary konstruktor, powieli N razy drugi parametr).
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec1(5, 2); for (const auto& v : vec1) cout << v << " "; cout << endl; vector<int> vec2{5, 2}; for (const auto& v : vec2) cout << v << " "; cout << endl; }Wynik:
2 2 2 2 2 5 2
Brak komentarzy:
Prześlij komentarz