函数的定义advance()
是:
template<class InIt, class Dist>
void advance(
InIt& it,
Dist n
);
当我在我的代码中使用这个函数时:
string strArr[10];
strArr[0] = string("dd");
strArr[1] = string("gg");
strArr[2] = string("tt");
const vector<string> vecStr(strArr, strArr+6);
advance(vecStr.begin(), 2);
cout<<*(vecStr.begin())<<endl; // the output is dd
你知道函数中的第一个参数advance()
是引用,所以之后advance(vecStr.begin(), 2);
,verStr.begin()
应该指向vecStr[2]
。但从输出中我们发现vecStr.begin()
指向str[0]
。
我想知道wy?