繁体   English   中英

使用迭代器从QStringlist中删除项目

[英]Remove item from QStringlist using iterator

我试图遍历QStringList ,打印字符串,然后将其从列表中删除。 我似乎找不到有效的QStringList方法! 例如:

for ( QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it ) {
    out << "Processed command: " << *it << endl;
    *it.erase();
}

给出编译器错误: 'QList :: Iterator'没有名为'erase'的成员

  1. 我如何删除迭代器当前指向的项目?
  2. 在循环中将其删除安全吗? (由于++it如果删除通过列表中的项目中途可能会失败)

另一个解决方案是使用QMutableStringListIterator ,它可以用作任何其他迭代器,但是它具有您要查找的“删除”方法。

 QMutableStringListIterator i(list); // pass list as argument
 while (i.hasNext()) { 
     i.remove();                      // delete current item
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM