草庐IT

shared_int

全部标签

c++ - 递增的 int 在函数结束时重置

这是有问题的功能。有问题的变量是count1。在returncount1;之前,该函数似乎将count1重置为1或2。最后cout行的结果是n行,其中n=尝试次数,包括正确的回答。每行输出一个比下一行大1的数字,直到count1=1或2。我无法确定它最终输出的模式。问题本身只是占位符。到底发生了什么事?注意:我是一个非常新的程序员,我知道可能有更有效的方法来做我正在做的事情,但我还没有学到。我愿意接受建议,但我对这些建议的理解可能会因为我对C++的不熟悉而受到阻碍intq1(intcount1)//q1()isalwaysfedavalueof1.{usingnamespacestd;

c++ 字符串到 boost::multiprecision::cpp_int

如何将字符串转换为“boost::multiprecision::cpp_int”?此外,我有一个.txt文件,其中包含100个数字,每个数字50个数字,我使用ifstream将它们逐行读取到字符串数组中。如何将数组中的每个字符串转换为cpp_int,然后将所有100个数字相加并得出总和? 最佳答案 要转换单个字符串,请使用cpp_int构造函数:cpp_inttmp("123");.对于文本文件的情况,循环读取每个数字作为std::string通过std::getline,然后放回std::vector.然后使用后者来计算您的总和

c++ - 初始化成员函数参数传递的shared_ptr

我希望有人能帮助我如何处理这种情况。这里的问题。我有一个共享库(.so、.dll、.dynlib)。在该库中有某种创建对象的工厂类。例如我的方法是这样的:classRenderSystem{public:intcreateTexture(Texture**texture,...);....}createTextureRenderSystem中的方法类看起来像这样:intcreateTexture(Texture**texture,...){....*texture=new...returnsomeErrorCode;}它正在创建Texture实例并将指针传递给texture范围。我们知

c++ - 为继承 enable_shared_from_this 的类获取 unique_ptr

通常我更喜欢从工厂返回unique_ptr。最近我遇到了为继承enable_shared_from_this的类返回unique_ptr的问题。此类的用户可能会意外调用shared_from_this(),尽管它不属于任何shared_ptr,这会导致std::bad_weak_ptr异常(或C++17之前的未定义行为,通常作为异常实现)。代码的简单版本:classFoo:publicenable_shared_from_this{stringname;Foo(conststring&_name):name(_name){}public:staticunique_ptrcreate(c

c++ - 什么是未知大小的 make_shared?

在this回答T.C.州boost::make_sharedetc.supportarraytypes-eitheroneofunknownsize,oroneoffixedsizeboost::shared_ptrsh_arr2=boost::make_shared(30);boost::shared_ptrsh_arr3=boost::make_shared();首先,make_shared如何支持未知大小的数组类型?我认为数组大小是必需的。其次,sh_arr2和sh_arr3有什么区别?两者似乎都在创建一个int大小为30的数组。 最佳答案

c++ - 带有自定义删除器的 std::shared_ptr 的 Typedef 别名

我想为std::shared_ptr创建别名使用自定义删除器。此代码有效,但仅适用于唯一指针。我收到有关标有[1]的行的无效模板参数数量的错误。我注意到std::unique_ptr的模板和ctor参数和std::shared_ptr与所列不同here和here我注意到这个问题可能与this重复,但我不知道如何解决我的问题#include#includetemplatestructDeleter{voidoperator()(T*p)constnoexcept{p->Drop();//SFINAE};};templateusingmy_unique_ptr=std::unique_pt

C++ 未解析的外部符号(public static int)

当我尝试编译它时,我得到了这个链接器错误:LNK2001unresolvedexternalsymbol"public:staticintHooksXD::night"(?night@HooksXD@@2HA)Theheaderisthis:classHooksXD{public:staticvoidXD3();staticintnight;staticintnight2;};变量是公共(public)的而不是私有(private)的,因为我需要从不在同一个类中的其他voids访问它们。cpp文件:HooksXDlmao;voidHooksXD::XD3(){//thisvoidwil

c++ - 如何获得 std::uniform_int_distribution 的实现不可知版本?

std::uniform_int_distribution接受任何>的PRNG,包括跨实现和平台一致的PRNG。然而,std::uniform_int_distribution本身似乎在实现之间并不一致,因此我不能指望能够复制它们,即使使用通用的PRNG和种子也是如此。这也会影响相关功能,例如std::shuffle().例如:#include#include#include#includetemplatevoidprintvector(conststd::string&title,conststd::vector&v){std::coutvPRNG;for(inti=0;ivUnif

c++ - int * 和 enum * 之间如何转换?

从一些C遗留代码中,我得到了一些常量作为int*。在C++部分,我有一个底层类型int的枚举。在单值基础上枚举和int之间的转换有效。但是,int*和enum*之间的转换是不可能的。请参见下面的代码示例。这是为什么?我如何将指向某些int值的指针转换为指向int枚举的指针,反之亦然?我有点希望它能工作,因为单值转换工作并且基础类型是相同的。我读到了Whathappensifyoustatic_castinvalidvaluetoenumclass?但无法确定潜在的无效值是否在此处起作用。inti=3;enumE:int;Ee;e=static_cast(i);//oki=static_

c++ - 继承类中的 shared_from_this() 类型错误(是否有 dyn.type-aware 共享指针?)

我有一个使用enable_shared_from_this的ViewController基类classViewController:publicstd::enable_shared_from_this{//...};和一个child:classGalleryViewController:publicViewController{voidupdateGallery(floatdelta);}问题出现了,当我尝试将我当前的实例传递给第3方时(比如lambda函数被安排在某处)实例(GalleryViewController)会释放一个(罕见的)条件,所以我不能直接捕获“this”,我需要用