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