Раздел, описанный в руководстве. Список разделов документируется в руководстве пользователя. Например:
man 1 man
man 3 find
Это полезно, если существуют одинаковые или точно равные команды в разных разделах
Из комментариев и ответа sftrabbit вы можете видеть, что реляционные операторы определены только для итераторов произвольного доступа, а std::list
имеет только двунаправленные итераторы. Поэтому для вашей проблемы существует несколько решений:
std::vector
или std::array
. Они предоставляют итераторы с произвольным доступом, имеют лучшую производительность для меньших размеров и в зависимости от того, как вы их заполняете и используете для больших размеров, а также имеют лучший размер памяти. Это предпочтительное решение, я бы назвал его «стандартным» решением. Используйте другие контейнеры только в том случае, если существует очень хорошая измеримая причина (например, профилировщик говорит вам, что использование этого контейнера является узким местом производительности). for (size_t i = 0, count = families.size()/2;
i < count;
++i, --itSmallFamily, ++itLargeFamily)
{ /* do stuff */ }
Заказываются только итераторы произвольного доступа. std::list
итераторы - это только двунаправленные итераторы, поэтому они не поддерживают operator<
или operator>
.
Вместо этого вы могли бы провести сравнение с !=
.
while (itSmallFamily != itLargeFamily)
Вы должны убедиться, что итераторы не перепрыгивают друг на друга, чтобы это работало. То есть, если itSmallFamily
находится только на один шаг от itLargeFamily
, вы просто поменяете их и они никогда не будут равны друг другу.
Вместо этого вы можете использовать std::vector
, чьи итераторы являются итераторами произвольного доступа. Кроме того, std::array
и std::deque
также поддерживают произвольный доступ.
(families.size() % 2) == 0
, поскольку эти итераторы никогда не будут одинаковыми.
– Arne Mertz
8 April 2013 в 10:58
std::vector
почти всегда лучший выбор, чем std::list
. std::list
хорошо, если вы делаете много вставок в произвольных местах и i>, число элементов значимо (сотни, а может быть, и тысячи).
– Thomas
8 April 2013 в 11:01