草庐IT

hash-code-uniqueness

全部标签

c++ - 使用带有 unique_ptr 的自定义删除器

借助shared_ptr,您可以使用自定义删除器,例如:autofp=shared_ptr(fopen("file.txt","rt"),&fclose);fprintf(fp.get(),"hello\n");这将记住fclose文件,无论函数如何退出。但是,引用局部变量似乎有点矫枉过正,所以我想使用unique_ptr:autofp=unique_ptr(fopen("file.txt","rt"),&fclose);但是,这不会编译。这是缺陷吗?有简单的解决方法吗?我是否遗漏了一些微不足道的东西? 最佳答案 应该是unique

Job for docker.service failed because the control process exited with error code.:已解决

Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See“systemctlstatusdocker.service”and“journalctl-xe”fordetails.:已解决问题描述Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See“systemctlstatusdocker.service”and“journalctl-xe”fordetails.docker.service的作业失败,因为控制进程

C++ - vector<> 中的 std::unique_ptr 是 nullptr

我想将Particle对象存储在vector对象中,以便稍后访问它。这些粒子(Electrons和Protons)继承自包含toString()虚方法的Particle类。此toString()方法随后在Electron和Proton类中被覆盖。当我读取vector容器时,我想访问Electron或Proton特定的toString()方法,而不是粒子。显然,一种方法是使用std::unique_ptr。这是我尝试运行的代码的一部分:intmain(){/**/std::vector>particles(nbParticles);particles.push_back(std::uni

c++ - 在没有 std::move 的情况下如何按值返回 unique_ptr?

这个问题在这里已经有了答案:Returningunique_ptrfromfunctions(7个答案)关闭8年前。std::unique_ptrptr(){std::unique_ptrp(newint(3));returnp;//Whydoesn'tthisrequireexplicitmoveusingstd::move?}//Whydidn'tthedatapointedtoby'p'isnotdestroyedherethoughpisnotmoved?intmain(){std::unique_ptra=ptr();//Whydoesn'tthisrequirestd::m

c++ - boost 序列化 std::unique_ptr 支持

boost序列化库支持std::unique_ptr的序列化吗?我试图编译下面的代码,但如果我包含boost::archive::text_oarchiveoa(ofs);oa行,编译器(顺便说一句,带有-std=c++11标志的gcc4.7)抛出一个错误/usr/include/boost/serialization/access.hpp:118:9:错误:‘classstd::unique_ptr’没有名为‘serialize’的成员#include#include#include#include#includeclassMyDegrees{public:voidsetDeg(in

c++ - 尽管使用 unique_ptr 内存泄漏

我有一个类的构造函数,它用传递给它的值初始化该类内部的unique_ptr。出于某种原因,valgrind提示内存泄漏:22,080(24direct,22,056indirect)bytesin1blocksaredefinitelylostinlossrecord6of6at0x4C2C7A7:operatornew(unsignedlong)(in/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)by0x4A64FB:VectorBasedNodeOrder::VectorBasedNodeOrder(VectorBasedN

c++ - 如何摆脱 g++ hash_map 弃用警告?

当我编译我正在编写的使用hash_map的c++应用程序时,我在g++4.3.2上收到此警告:您正在使用已弃用的header。要消除此警告,请使用ANSI标准头文件或使用hte-Wno-deprecated编译器标志。9>#include什么include取代了它?我在谷歌上搜索了一段时间,除了遇到类似问题但没有解决方案的人之外找不到任何东西。 最佳答案 我的第一个Google搜索“g++hash_mapdeprecated”将我带到了apage其中包括要使用的东西列表,而不是已弃用的header和类。对于hash_map,列表建议

c++ - LLVM 即时编译 : pass C++ exception through JIT code back to host application

我正在开发一个项目,我使用clang生成一些LLVMIR,然后在我的主机应用程序中进行JIT编译和运行。JIT代码调用宿主应用程序中的某些函数可能会引发异常。我希望通过JIT代码抛出异常并在主机应用程序中捕获。据我所知,这应该与LLVM一起使用,但不幸的是,我的测试应用程序总是因“在抛出‘int’实例后调用终止”而崩溃。让我举个简单的例子。我使用clang3.5将以下简单程序编译成LLVMIR:externvoidtest();extern"C"voidexec(void*){test();}与./clang-O0-S-emit-llvmtest.cpp-c结果为test.ll;Mod

c++ - 使用 GCC 查找无法访问的函数 ("dead code")

我正在寻找一种在(非常)大的C++项目中查找静态无法访问的函数的方法。我曾尝试使用doxygen和此处建议的其他静态分析工具,但似乎该项目太复杂了,他们无法处理。最后我决定使用GCC工具(g++、gprof、gcov等)是最安全的选择,尽管我不知道该怎么做。我认为g++优化消除了静态无法访问的函数,但我不确定如何获取它消除的函数的名称。你有什么建议吗? 最佳答案 死代码优化通常由链接器完成——编译器没有概览。但是,编译器可能已经删除了未使用的static函数(因为它们具有内部链接)。因此,您不应该查看GCC选项,而应该查看ld选项。

OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验

1.介绍感知哈希算法(PerceptualHashAlgorithm,简称pHash)是哈希算法的一种,主要用来做相似图片的搜索工作。 2.原理感知哈希算法(pHash)首先将原图像缩小成一个固定大小的像素图像,然后将图像转换为灰度图像,通过使用离散余弦变换(DCT)来获取频域信息。然后,根据DCT系数的均值生成一组哈希值。最后,利用两组图像的哈希值的汉明距离来评估图像的相似度。魔法:概括地讲,感知哈希算法一共可细分八步:缩小图像:将目标图像缩小为一个固定的大小,通常为32x32像素。作用是去除各种图像尺寸和图像比例的差异,只保留结构、明暗等基本信息,目的是确保图像的一致性,降低计算的复杂度。