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

时间:2016-08-28 22:54:38

标签: c++ qt loops iterator qstring

我在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()

感谢。

1 个答案:

答案 0 :(得分:1)

认为你可以使用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()。< / p>