如何从 std::deque 获取前一个元素?
例如,我有一个包含大约 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用双端队列::at。
d.at(121)
use deque::at.
d.at(121)
如果您的意思是在越界访问的情况下抛出运行时检查,您可以使用::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.