В чем разница в распределении памяти и эффективности между использованием структуры с двумя полями и парой?
В чем разница между использованием структуры с двумя полями и парой?
Ответ 1
std::pair
предоставляет предварительно написанные конструкторы и операторы сравнения. Это также позволяет хранить их в контейнерах, таких как std:: map, без необходимости писать, например, конструктор копирования или строгий слабый порядок с помощью operator <
(например, требуемый std::map
). Если вы их не пишете, вы не можете ошибиться (помните, как работает строгий слабый порядок?), Поэтому более надежно использовать std::pair
.
Ответ 2
std::pair
появляется множество конструкторов и операторов.
A struct
разрешить именованные поля (кроме first
и second
) и готовы к расширению в любое время.
Предпочитайте struct
, когда это возможно, это может привести к некоторым накладным расходам, но определенно проще для обслуживания.
Ответ 3
С точки зрения распределения памяти и эффективности, нет никакой разницы - поскольку это именно то, что есть std::pair
.
Ответ 4
Нет разницы в распределении памяти или эффективности. Фактически, в реализации STL я использую пару, которая определяется как struct pair
Ответ 5
Как указано в std:: pair < int, int > vs struct с двумя int структура будет, вероятно, немного быстрее, потому что не выполняется инициализация.