gpt4 book ai didi

c++ - 获取 QStringList 的前一个元素

转载 作者:行者123 更新时间:2023-11-28 02:02:10 25 4
gpt4 key购买 nike

我目前正在开发一个小程序,我将计算某个单词在文本中被提及的次数。但我只想在前一个元素是 10 位数字时计算这个词。所以我正在尝试做的是检查迭代器的前一个元素是否包含 10 位数字。但是我不知道如何从迭代器迭代到前一个元素。

QString input = ui->listinput->toPlainText();

QStringList inputlist = input.split(QRegExp("[\s\n\r " "]+"));

unsigned int boxCount(0);

for(QStringList::iterator it(inputlist.begin()); it != inputlist.end(); ++it){

if(!QString::compare(*it,box)) ++boxCount;

}

所以我希望 if 语句是这样的:

if(!QString::compare(*it,box) && *prev_it == 10 digits) ++boxCount;

任何帮助将不胜感激。谢谢!

最佳答案

您可以通过以下方式获取前一个迭代器:

if (it != inputlist.begin()) {
prev_it = it - 1
}

您必须为第一个元素创建一个异常(exception),因为它没有前一个元素。检查范围(如上)或开始你的 for 循环一个元素超过第一个(注意'+ 1'):

for (QStringList::iterator it(inputlist.begin() + 1); it != inputlist.end(); ++it) {
...
}

在后一种情况下,您必须确保您的列表至少包含一个元素。

如果您随后想检查该数字是否为 10 位数字(假设为十进制和整数),您可以尝试以下操作:

bool ok = false;
long num = prev_it->toLong(&ok);
if (ok && num >= 1000000000) {
// do something
}

注意:我用的是long类型,因为我不知道你的数字范围,但它们看起来很大。

关于c++ - 获取 QStringList 的前一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39015387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com