按内容访问QVector元素索引

Access QVector element index by its content

本文关键字:元素 索引 QVector 访问      更新时间:2023-10-16

我有一个QStringsQVector,我想删除元素及其内容,但我不知道如何找到它的索引。你知道如何删除它吗?我不想对它进行迭代,也不想根据我的值来比较它的内容。

我的QVector声明如下:

QVector <QString> user_valid;

我想通过其内容删除它,例如值为"万寿菊"的元素:

user_valid.remove(user_valid.find("marigold");

提前谢谢!

好的,所以如果我是你,我会做以下事情:

  • 使用QStringList而不是QVector<QString>,因为它有一些对您有用的方便方法;它也更常见,因此更全面。即使在这种情况下,您也可以省去一个额外的方法调用。

  • 只需根据您的具体场景使用removeOne()和/或removeAll()方法即可。

因此,我会写这样的东西:

QStringList user_valid;
user_valid << "marigold" << "cloud" << "sun" << "rain";
user_valid.removeOne("marigold");
// user_valid: ["cloud", ,"sun", "rain"]

如果你真的坚持使用QVector<QString>——在我看来这是个坏主意——你需要首先通过indexOf()方法获得索引,所以你会写这样的:

user_valid.remove(user_valid.indexOf("marigold"));
user_valid.remove(user_valid.indexOf("marigold"));