STL列表和迭代器

0 c++ iterator stl

您好,我无法让它工作.我有4个成员的结构,我创建列表和迭代器:

std::list<structure> one;
std::list<structure>::iterator two;
Run Code Online (Sandbox Code Playgroud)

现在我想获得对元素的访问:

one.end-1;
two = one.end()-1;
Run Code Online (Sandbox Code Playgroud)

它不起作用>.> Compilator抛出14个错误.

错误如下:

所有这些都是这样的:

Glowne.cpp(105):错误C2784:'reverse_iterator <_RanIt> :: difference_type std :: operator - (const std :: reverse_iterator <_RanIt>&,const std :: reverse_iterator <_RanIt2>&)':无法推导出模板'const std :: reverse_iterator <_RanIt>&'来自'std :: list <_Ty> :: _ Iterator <_Secure_validation>'的参数[_Ty = Klient,_Secure_validation = true]

一切都运作得很好,谢谢你提到回来的方法,真的伙计你很棒.

fre*_*low 6

双向迭代器(由使用者std::list)不支持"指针算术",只有单步:

two = one.end();
--two;
Run Code Online (Sandbox Code Playgroud)

此外,声明one.end-1;完全没有任何影响,我会摆脱它.