如何从 std::deque 获取前一个元素?

发布于 2024-09-12 06:26:49 字数 416 浏览 19 评论 0原文

例如,我有一个包含大约 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] 检查...

谢谢。

For example I have an array with about 10 elements in it.

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

Question: how to find 900 element, without using [] access? If the size of the massive will be changes, for example to 123, how to find 122 element?

PS: I don't want to use [] because this method does not perform d[-1] check...

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

等数载,海棠开 2024-09-19 06:26:49

使用双端队列::at。

d.at(121)

use deque::at.

d.at(121)

毁我热情 2024-09-19 06:26:49

如果您的意思是在越界访问的情况下抛出运行时检查,您可以使用::at(pos)。
如果您的意思是 d[-1] 是最后一个元素,d[-2] 是倒数第二个元素,依此类推(a-la Python),那么您必须为此编写自己的(可能是模板)函数。

If you mean a runtime check throwing in case of out of bound access you can use ::at(pos).
If you mean d[-1] being the last element, d[-2] the second-last and so on (a-la Python) then you've to code your own (possibly template) function for that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文