c++ - 通过内容访问 QVector 元素索引

标签 c++ qt qstring qtcore qvector

我有一个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"));

关于c++ - 通过内容访问 QVector 元素索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23179425/

相关文章:

c++ - QStringList.append() 在 OS X 上崩溃

c++ - Qt 中的 const char* 错误行为

c++ - 为什么我不能手动提供模板参数?

c++ - 如何使用 FFMPEG 打开文件\实时流使用 openCV 编辑每个帧并将其保存为使用 FFMPEG 文件\实时流编码?

qt - 表格 View 中的组合框

c++ - 我们可以通过 D 总线访问数据成员和对象指针吗?

c++ - QString::endsWith() 不起作用?

c++ - gss_init_sec_context 返回未找到凭证缓存(Windows、C++)

c++ - 无法在 Visual Studio 2013 中正确创建 C++ 项目

c++ - 使用 Qt 编译 OpenCV