[英]Iterator and 2d vector
vector< vector<int> >::iterator temp = mincost.end();
vector<int> a = *temp;
if ( *temp != *(temp--) )
return 0;
mincost
是一个2d向量,我想获取此vector<int>
的最后一个vector<int>
以及last--
。 我对迭代器不是很了解:)。 帮我 !! :D Thx ^^
minconst.end()
指向向量minconst
的最后一个元素; 它不指向向量中的最后一个元素。
由于您需要最后两个元素,因此应该首先进行测试以确保向量中确实包含两个元素,否则不可避免地会遇到问题。 然后,访问向量中的最后一个元素仅是*(minconst.end() - 1)
,依此类推。
《 C ++参考》还对迭代器进行了描述 。
如果您不熟悉STL容器,则可以将end()迭代器想像成C字符串中的'\\ 0'字符-它们定义了结尾在哪里,但是它们携带的实际值没有用。 如果取消引用最终迭代器,则将导致垃圾,或者很可能是异常。
尝试这个:
if (!mincost.empty())
{
//it contains atleast one 1-d vector and the 'end' iterator.
iter = mincost.end();
--iter;
//dereference iter here.
}
一旦您对迭代器感到满意,请查找reverse_iterator。 正如Effo所说,它们是这里最好的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.