【问题标题】:How to make a QStringList iterator start from a specific index [duplicate]如何使 QStringList 迭代器从特定索引开始[重复]
【发布时间】:2016-08-28 22:54:37
【问题描述】:

我正在开发一个 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() 开始。

谢谢。

【问题讨论】:

标签: c++ qt loops iterator qstring


【解决方案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()

【讨论】:

    猜你喜欢
    • 2014-01-15
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2020-08-09
    • 2014-03-04
    • 2018-12-04
    相关资源
    最近更新 更多