小编joe*_*doe的帖子

在 Qt 中的 QStringList 中搜索 QString 的一部分

在 QString 中, contains() 方法的工作方式如下:

QString s = "long word";
s.contains("long"); // -> True
Run Code Online (Sandbox Code Playgroud)

我认为 QStringList 的工作方式类似,但它没有:

QStringList s;
s << "long word";
s << "longer word";
s.contains("long"); // -> False
Run Code Online (Sandbox Code Playgroud)

QStringList 包含对完全匹配的搜索,这不像我想要的那样工作。有没有一种简单的方法可以在 QStringList 中查找字符串的一部分?我当然可以遍历 QStringList 并在那里使用 contains() ,但是有更好的方法吗?

c++ qt

4
推荐指数
1
解决办法
7428
查看次数

函数参数中的Qt智能指针

我正在寻找 Qt 智能指针的最佳实践。假设我有这样的事情。

void aFunction() {
    QSharedPointer<QVector<QSharedPointer<Object> > > pointer = QSharedPointer<QVector<QSharedPointer<Object> > >(new QVector<QSharedPointer<Object> >);

    doSomethingWithPointer(pointer);
    changeOwnership(pointer);
}
Run Code Online (Sandbox Code Playgroud)

然后在 doSomethingWithPointer 函数中

void doSomethingWithPointer(QSharedPointer<QVector<QSharedPointer<Object> > > pointer) {
    pointer->append(QSharedPointer<Object>(new Object);
}
Run Code Online (Sandbox Code Playgroud)

现在我在 doSomethingWithPointer 之后,将指针传递给 changeOwnership,它应该拥有它的所有权。我想知道的是 doSomethingWithPointer。在这样的函数中传递共享指针可以吗?或者我应该使用 QWeakPointer 因为 doSomethingWithPointer 实际上并不拥有指针的所有权?我什么时候应该使用 QWeakPointer?

c++ qt

0
推荐指数
1
解决办法
1538
查看次数

标签 统计

c++ ×2

qt ×2