Это то же самое, что сравнивать массив std :: vector и C.
Думайте о shared_array
как о массиве RAII C. То, что вы получаете, это просто автоматическое освобождение памяти. Полезно в случаях, когда вы имеете дело со сторонним кодом, который возвращает массивы.
Теоретически это быстрее, чем std :: vector в некоторых крайних случаях, но гораздо менее гибко и менее безопасно.
std :: vector, вероятно, лучший выбор.