如何使 QStringList 迭代器从特定索引开始

How to make a QStringList iterator start from a specific index

我正在开发一个 QStringList,其中程序有一个主迭代器来遍历每个单词。现在我想实现一个子迭代器,我希望子迭代器从某个位置开始。

这是我的代码的简单可视化:

for(QStringList::iterator pkg_header(inputline.begin()); pkg_header != inputline.end(); ++pkg_header){ 
   ...
   if(!QString::compare(*pkg_header,Computing)){
      for(QStringList::iterator pkg_section(pkg_header+1; pkg_section != pkg_header.end(); pkg_section++){
         ...
   }
}

换句话说,我需要帮助使子迭代器从 pkg_header+1 位置开始,而不是从 pkg_header.begin() 开始。

谢谢。

认为 你可以将 operator + (int)QStringList 迭代器一起使用(如果我错了请纠正我):

for (QStringList::iterator pkg_section = pkg_header + 1;
     pkg_section != inputline.end(); 
     pkg_section ++) 
    ...

但即使没有,您也可以随时这样做:

QStringList::iterator pkg_section = pkg_header;
for (pkg_section ++; pkg_section != inputline.end(); pkg_section ++) 
    ...

抱歉,如果您不能做到 + 1,我现在无法方便地检查 QStringList

此外,您似乎对循环的终止条件有些困惑。我假设您的意思是 inputline.end(),因为 pkg_header.end() 无效... pkg_headeriterator,它没有 end()