«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Действительно ли сравнивать итераторы из разных контейнеров в C ++?

Действительно ли сравнивать итераторы из разных контейнеров в C ++?

Опубликовано в 2025-03-25
Просматривать:797

Is It Valid to Compare Iterators from Different Containers in C  ?

Сравнение итераторов из различных контейнеров

При работе с контейнерами важно понять последствия сравнения итераторов из разных контейнеров. Возникает вопрос: допустимо ли сравнивать итераторы, принадлежащие различным контейнерам? std :: ecector bar; std :: cout

, выражение foo.begin () == bar.begin () даст ложь или привести к неопределенному поведению?

std::vector foo;
std::vector bar;
std::cout  раздел 24.2.1 гласит, что два итератора, i и j, считаются достижимыми, если существует конечная последовательность операций I, которые делают I равными J. 

if j, из I, они ссылаются на одну и ту же последовательность. &&]

Forwarditerators, которые включают случайные результаты, подлежат разделу 24.2.5. Поведение.

]
    LWG выпуска № 446
  • LWG. Выпуск № 446 Явно обращается к этому вопросу, предлагая следующее дополнение к стандарту:
" Диапазоны R1 и R2 [...], которые не являются подпрнатами одного общего диапазона, не являются неопределенными, если только явно описано иное. «

в заключении, сравнение итераторов из различных контейнеров является неопределенным поведением, и очень важно придерживаться этого ограничения, когда написание пользовательских итераторов и манипулирующих контейнеров в вашем коде.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3