我喜欢unique_ptr<T>使用任意类型T强制返回一个空指针,以便可以取消引用它的内容。但是用下面的简单例子:
#include <memory>
class Foo {
public: Foo(){};
};
int main() {
std::unique_ptr<Foo> p1 (new Foo);
void *p2 = (void*)&p1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,无法投射:
$ gdb ./unique-ptr
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
...
(gdb) b 10
Breakpoint 1 at 0x400682: file unique-ptr.cc, line 10.
(gdb) run
Starting program: /home/vagrant/c-test/unique-ptr/unique-ptr
Breakpoint 1, main () at unique-ptr.cc:10
10 return 0;
(gdb) p p1
$1 = std::unique_ptr<Foo> containing 0x603010
(gdb) p p2
$2 = (void *) 0x7fffffffea40
(gdb) p *(std::unique_ptr<Foo>*)p2
A …Run Code Online (Sandbox Code Playgroud) 如何在 PowerShell 脚本中进行模糊字符串匹配?
我从不同的来源抓取了不同的人名,并将它们存储在一个数组中。添加新名称时,我喜欢将名称与现有名称进行比较,如果它们模糊匹配,我喜欢将它们视为相同。例如,使用以下数据集:
@("George Herbert Walker Bush",
"Barbara Pierce Bush",
"George Walker Bush",
"John Ellis (Jeb) Bush" )
Run Code Online (Sandbox Code Playgroud)
我喜欢从给定的输入中看到以下输出:
"Barbara Bush" -> @("Barbara Pierce Bush")
"George Takei" -> @("")
"George Bush" -> @("George Herbert Walker Bush","George Walker Bush")
Run Code Online (Sandbox Code Playgroud)
至少,我喜欢看到匹配不区分大小写,并且如果可能的话,也足够灵活以处理一定程度的拼写错误。
据我所知,标准库不提供这样的功能。是否有一个易于安装的模块可以实现这一点?