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]检查...

谢谢。

4

2 回答 2

1

使用双端队列::at。

d.at(121)

于 2010-07-27T07:52:38.333 回答
0

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

于 2010-07-27T07:54:13.243 回答