(1) и (2) оба зависят от ваших определений.«STL» технически не является частью стандарта C ++, но достаточно большие его части были адаптированы к первоначальному стандарту, который закрепил название.Но да, шаблонные контейнеры, обычно называемые STL, являются частью официальной стандартной библиотеки C ++.«Ядро» может быть натяжкой;компилятор может фактически исключить их из автономной реализации, но вы почти никогда не будете писать для автономной реализации, поэтому различие не имеет значения.
(3) Они служатлюбая другая цель? Да, это одна цель.Как указывает Стив Джессоп ниже, они также связывают такие вещи, как потоки, которые можно итерировать, фактически не являясь контейнером, с алгоритмами.
(4) Вы имеете в виду std::list
?Тогда вы правы.Если вы не хотите играть с семантикой;они хранятся последовательно, но, возможно, не смежно.
(5) В оригинальном стандарте, опубликованном в '98, это было бы возможно.В модифицированном стандарте от 03 года это изменилось на да.В обоих случаях может применяться семантический аргумент из (4)