如何检查 QList 中是否存在值?
how to check if a value exist in QList?
我有一个 class 来保存客户的 ID 和他的名字。保存后我将对象插入 QList
并在 table.
上查看它们
我需要的:
我需要检查客户是否已添加到 table。
我的做法:
我正在尝试使用客户 ID 搜索列表,如果找到它,我想更新他的记录,否则添加一个新记录。
代码应如下所示。
bool customerExist = customersList.contains(customerID);
if (!customerExist)
{
customersList.append(customer)
}
您可以通过以下方式在列表中搜索:
auto iterator = std::find_if(
customersList.begin(), customersList.end(),
[](MyObject x) { return x.myproperty() == customerID; }
);
if (iterator != customersList.end())
如果您需要定期通过客户 ID 访问您的数据,我建议使用 QMap<int, Customer*>
。 (使用您的客户 ID 类型作为键)
如果客户数量越来越多,使用 QMap 会更快。
然后你可以这样做::
if (!myMap.contains(customerID))
{
myMap.insert(customerID, customer);
}
我有一个 class 来保存客户的 ID 和他的名字。保存后我将对象插入 QList
并在 table.
我需要的:
我需要检查客户是否已添加到 table。
我的做法:
我正在尝试使用客户 ID 搜索列表,如果找到它,我想更新他的记录,否则添加一个新记录。
代码应如下所示。
bool customerExist = customersList.contains(customerID);
if (!customerExist)
{
customersList.append(customer)
}
您可以通过以下方式在列表中搜索:
auto iterator = std::find_if(
customersList.begin(), customersList.end(),
[](MyObject x) { return x.myproperty() == customerID; }
);
if (iterator != customersList.end())
如果您需要定期通过客户 ID 访问您的数据,我建议使用 QMap<int, Customer*>
。 (使用您的客户 ID 类型作为键)
如果客户数量越来越多,使用 QMap 会更快。
然后你可以这样做::
if (!myMap.contains(customerID))
{
myMap.insert(customerID, customer);
}