如何使 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_header
是 iterator
,它没有 end()
。
我正在开发一个 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_header
是 iterator
,它没有 end()
。