【问题标题】:Access QVector element index by its content按内容访问 QVector 元素索引
【发布时间】:2014-04-20 07:01:25
【问题描述】:

我有一个QStringsQVector,我想删除元素及其内容,但我不知道如何找到它的索引。你知道我怎样才能删除它吗?我不想迭代它并按我的值比较它的内容。

我的QVector 声明如下:

QVector <QString> user_valid;

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

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

提前谢谢你!

【问题讨论】:

    标签: c++ qt qstring qtcore qvector


    【解决方案1】:

    好的,如果我是你,我会这样做:

    • 使用QStringList 而不是QVector&lt;QString&gt;,因为它具有对您有用的便捷方法;它也更常见,因此也更全面。即使在这种情况下,您也会节省一个额外的方法调用。

    • 根据具体情况使用removeOne() 和/或removeAll() 方法。

    因此,我会这样写:

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

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

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

    【讨论】:

      【解决方案2】:
      user_valid.remove(user_valid.indexOf("marigold"));
      

      【讨论】:

        猜你喜欢
        • 2017-04-23
        • 1970-01-01
        • 2019-07-28
        • 2012-02-09
        • 2013-09-04
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多