Разница между std::initializer_list и стандартными контейнерами заключается в их назначении и поведении:
Таким образом, std::initializer_list удобен для быстрой инициализации списка элементов, в то время как стандартные контейнеры предназначены для более общего использования, когда нужно управлять памятью и изменять элементы внутри контейнера. 4
При этом другие контейнеры из стандартной библиотеки определяют конструктор, который принимает std::initializer_list в качестве аргумента. 2