Как проверить, находится ли 2d векторный элемент в определенном диапазоне индекса - PullRequest
1 голос
/ 29 марта 2020

Я хочу проверить, находится ли определенный элемент 2d-вектора в пределах индекса. Например, у меня есть следующий вектор:

{1,  2,  3,  4,  5,
 6,  7,  8,  9,  10,
 11, 12, 13, 14, 15}

Как я могу проверить, находится ли номер элемента 7 (или [1][1]) в диапазоне индекса от 0 до 2 на оси x и от 0 до 1 на оси y? Или другими словами 3x2 разбиение вектора из левого верхнего угла.

1 Ответ

2 голосов
/ 29 марта 2020

Для оси у вы можете сделать это так:

index/width < yLimit

Для оси х это будет выглядеть так:

index%width < xLimit

, где width - ширина 2d массива, а xLimit и yLimit - это максимум, который вы хотите, чтобы ваш номер оси x и номер оси y были соответственно.

Обратите внимание, что это число должно быть больше или равно 0 в любом случае, так как отрицательные индексы не являются чем-то особенным в C ++.

Также обратите внимание, что я использую < здесь, но я повторяю, если вы хотите включить 1 или 2 в ваши возможные индексы, вы вместо этого следует использовать <=.

Если вы хотите, чтобы они были вместе, логический and прекрасно подойдет:

index/width < yLimit && index%width < xLimit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...