кортежи похожи на структуры (обсуждается здесь: Boost :: Tuples vs Struct для возвращаемых значений). кажется, что единственным преимуществом является то, что удобнее писать struct, потому что она короче и по ключу, а не по числу.
можно также использовать карту слияния и структуры для доступа по ключу Boost :: Tuples vs Struct для возвращаемых значений моделировать конструкции. это немного больше писать.
Кажется, что в исполнении также нет никакого штрафа. ну, слияние может быть быстрее, так как он использует представления.
так что единственная причина использовать структуры — если вы не хотите писать еще несколько строк кода и сохранять код читабельным?
поэтому единственная причина использовать структуры, если вы не хотите писать мало
больше строк кода и чтобы код был читабельным?
Кроме того, есть расширяемость / ремонтопригодность — было бы довольно трудно поместить / изменить / удалить любой дополнительный позиционный аргумент в кортеже, но это намного проще с поиском структуры «ключ-значение».
Качество кода это сочетание производительности, читабельности, четкости, расширяемости и т. д. Игнорирование любых этих значений ухудшит ваш код. И это плохо.
Структуры могут быть разделены на подклассы и могут содержать методы, виртуальные функции, перечисления, определения типов, подструктуры и многое другое.
Кортежи могут представлять только самые тривиальные функции struct
это коллекция значений. И это даже не может дать им имена. Они очень плохая замена.