Как получить предыдущий элемент из std :: deque? - PullRequest
0 голосов
/ 27 июля 2010

Например, у меня есть массив, содержащий около 10 элементов.

std::deque<int> d;
front_inserter(d) = 100;
front_inserter(d) = 200;
front_inserter(d) = 300;
...
front_inserter(d) = 900;
front_inserter(d) = 1000;

Вопрос : как найти элемент 900, без , используя [] доступ? Если размер массива будет изменен, например на 123, как найти 122 элемента?

PS: я не хочу использовать [], потому что этот метод не выполняет d[-1] проверку ...

Спасибо.

Ответы [ 2 ]

1 голос
/ 27 июля 2010

используйте deque :: at.

d.at(121)

0 голосов
/ 27 июля 2010

Если вы имеете в виду проверку выполнения во время выполнения в случае отсутствия доступа, вы можете использовать :: at (pos).Если вы имеете в виду, что d [-1] является последним элементом, d [-2] вторым последним и т. Д. (А-ля Python), то для этого вы должны написать собственную (возможно, шаблонную) функцию.

...