list中没有提供operator+=操作,所以对于快速定位是一件罗嗦的事情(自己写循环语句是令人烦恼的)。值得庆幸的是,我们可以使用 <iterator>中的advance函数来轻松搞定此事。情况下面演示代码:
#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main( void )
{
list<int> il;
for ( int i = 0; i < 10; ++ i )
{
il.push_back( i );
}
list<int>::iterator it = il.begin();
advance( it, il.size() >> 1 );
cout << *it << endl;
return 0;
}
#include <iostream>
#include <list>
#include <iterator>
using namespace std;
int main( void )
{
list<int> il;
for ( int i = 0; i < 10; ++ i )
{
il.push_back( i );
}
list<int>::iterator it = il.begin();
advance( it, il.size() >> 1 );
cout << *it << endl;
return 0;
}