В чем разница в распределении памяти и эффективности между использованием структуры с двумя полями и парой?
В чем разница между использованием структуры с двумя полями и парой?
Ответ 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 структура будет, вероятно, немного быстрее, потому что не выполняется инициализация.