按内容访问QVector元素索引

时间:2014-04-20 07:01:25

标签: c++ qt qstring qtcore qvector

我有一个QVector QStrings我希望删除包含其内容的元素,但我不知道如何找到它的索引。你知道我该怎么删除它?我不想迭代它并按我的价值比较其内容。

我的QVector声明如下:

QVector <QString> user_valid;

我希望通过其内容删除它,例如带有值的元素&#34;万寿菊&#34;:

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

提前谢谢!

2 个答案:

答案 0 :(得分:1)

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

  • 使用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()方法得到索引,所以你要写这个:< / p>

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

答案 1 :(得分:0)

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