列出迭代器+运算符

Joo*_*kia 7 c++ stdlist

// ((++currentEntry)--) is equivalent to (currentEntry + 1). Kind of.
menuEntries.insert((++currentEntry)--, newEntries.begin(), newEntries.end());
Run Code Online (Sandbox Code Playgroud)

所以我这里有世界上最糟糕的代码.有一个更好的方法吗?

当使用'+ 1'时,我得到这个:

source/menu.cpp:146:37: error: invalid operands to binary expression
      ('list<menuEntry *>::iterator' (aka '_List_iterator<menuEntry *>') and
      'int')
                            menuEntries.insert(currentEntry + 1, ...
                                               ~~~~~~~~~~~~ ^ ~
Run Code Online (Sandbox Code Playgroud)

win*_*aed 8

为什么不分成多行:

iterator nextEntry = currentEntry;
menuEntries.insert( ++nextEntry, newEntries.begin(), newEntries.end());
Run Code Online (Sandbox Code Playgroud)

iterator列表的迭代器类型在哪里.就个人而言,我可能会把++nextEntry它拉到自己的路线上以进一步明确 - 但这可能是一个主观决定.