我有一个QVector
ofQStrings
并且我想删除元素及其内容,但我不知道如何找到它的索引。你知道我怎样才能删除它吗?我不想迭代它并按我的值比较它的内容。
我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"));