Подтвердить что ты не робот

В чем разница между использованием структуры с двумя полями и парой?

В чем разница в распределении памяти и эффективности между использованием структуры с двумя полями и парой?

4b9b3361

Ответ 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