小编Pho*_*rga的帖子

std :: make_shared里面的原始指针

我很乐意继续学习C/C++中指针的精细笔记以及它们是如何工作的,但经过一些研究后,我对下面的代码感到不舒服.

std::shared_ptr<CDKSCREEN> cdkScreen;
cdkScreen = std::make_shared<CDKSCREEN>(*initCDKScreen(newWin.get()));
Run Code Online (Sandbox Code Playgroud)

内部原始指针的使用是否std::shared_ptr会使您使用智能指针获得的任何好处无效?或者两种方式都一样吗?谢谢你,我感谢这篇文章的任何答案.


编辑:我没有意识到该reset()功能的全部目的,但感谢所有向我指出这一点的人.看来我也可以传递自定义析构函数std::shared_ptr,如下所示:

std::shared_ptr<CDKSCREEN> cdkScreen(initCDKScreen(newWin.get()), destroyCDKScreen);
Run Code Online (Sandbox Code Playgroud)

c++ pointers raii c++11

3
推荐指数
1
解决办法
1400
查看次数

使用QRegExp从URL中提取文件名

我有一个问题,我有一个RegEx,[^/\&\?] +.\ w {3,4}(?=([\?&].*$ | $)),但我无法得到它使用下面[1]中的功能.

[1] - http://doc.qt.io/qt-5/qregexp.html

这是我试过的代码:

QRegExp rx("[^/\\\\&\\?]+\\.\\w{3,4}(?=([\\?&].*$|$))", Qt::CaseInsensitive, QRegExp::RegExp);
std::ostringstream list;
int pos = 0;
while ((pos = rx.indexIn(url, pos)) != -1) {
    list << rx.cap(1).toStdString();
    pos += rx.matchedLength();
}

return list;
Run Code Online (Sandbox Code Playgroud)

它应该从URL中提取文件名,但只返回任何内容.我不确定出了什么问题.有人可以提供帮助吗?先感谢您.

c++ regex qt qregexp

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

标签 统计

c++ ×2

c++11 ×1

pointers ×1

qregexp ×1

qt ×1

raii ×1

regex ×1