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

В Mac OS для IntelliJ v12 выключите среду IDE, а затем вы можете выполнить:

rm -rf ~/Library/Preferences/IdeaIC12/*

Перезапустить среду IDE или открыть выбранный pom.xml. Вас спросят, хотите ли вы импортировать настройки из существующего экземпляра IntelliJ. Выберите «Нет, у меня нет предыдущей радиостанции версии IntelliJ».

30
задан Soo Wei Tan 2 May 2012 в 21:03
поделиться

4 ответа

std :: pair предоставляет заранее написанные конструкторы и операторы сравнения. Это также позволяет хранить их в контейнерах, таких как std :: map, без необходимости писать, например, конструктор копирования или строгое слабое упорядочение через operator < (например, как того требует std :: карта ). Если вы их не пишете, вы не можете ошибиться (помните, как работает строгий слабый порядок?), Поэтому надежнее просто использовать std :: pair .

23
ответ дан 27 November 2019 в 22:20
поделиться

С точки зрения распределения памяти и эффективности разницы нет - поскольку это именно то, что представляет собой std :: pair .

7
ответ дан 27 November 2019 в 22:20
поделиться

Никакой разницы с точки зрения распределения памяти или эффективности. Фактически, в реализации STL, которую я использую, пара определяется как struct pair

1
ответ дан 27 November 2019 в 22:20
поделиться

std :: pair содержит ряд конструкторов и операторов.

Структура struct разрешает именованные поля (кроме first и second ) и готова к расширению в любое время.

По возможности отдавайте предпочтение структуре . Это может быть связано с некоторыми накладными расходами, но, безусловно, проще в обслуживании.

20
ответ дан 27 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: