std :: XXX :: inerator始终支持operator +,例如
const string s = "abcdef";
cout << *(s.begin() + 3);//output d
但是ptree不支持operator +。
ptree p = root.get_child("insert");
//I want to directly goto the 3rd child.
auto iter = p.begin()+3;//error
我知道我可以使用for循环来做到这一点。但是我想知道是否还有一种更优雅的方式来做到这一点?
答案 0 :(得分:-1)
我是通过以下方式实现的:
template <class InputIterator, class Distance>
void advance (InputIterator& it, Distance n);
auto iter = p.begin();
advance(iter, 3);