В Visual C++ и других компиляторах Microsoft расширение std::vector происходит по-разному из-за различий в реализации стандартной библиотеки. В Microsoft предпочитают использовать расширение с двойным смещением, которое может быть более эффективным в некоторых случаях, но может привести к более низкой производительности в других.
В GNU и других открытых реализациях стандартной библиотеки, расширение std::vector обычно происходит с использованием копирования при записи или других методов, которые могут быть более эффективными в общем случае.
Выбор конкретного метода расширения std::vector зависит от многих факторов, включая производительность, эффективность использования памяти и другие аспекты.