草庐IT

延时分配

全部标签

c++ - boost::optional 不允许我重新分配 const 值类型

在我看来应该有四个变体boost::optionaloptional=>持有一个可变的Foo并且可以在初始化后重新分配optionalconst=>持有一个constFoo并且不能在初始化后重新分配optionalconst=>(应该?)持有一个可变的Foo但不能在初始化后重新分配optional=>(应该?)持有一个constFoo并且可以在初始化后重新分配前2个案例按预期工作。但是optionalconst取消对constFoo的引用,以及optional不允许在初始化后重新分配(如thisquestion中所述)。const值类型的重新分配是我遇到的具体问题,错误是:/usr/i

分配字符串数组以在Java中的组合

我想分配dir数组到comboBox。我的代码中是否有任何错误。我试图显示dir数组包含值,但无法分配ComboBox。这是代码。importjava.awt.EventQueue;publicclassExpenseManager{privateJFrameframe;privateJTextFieldtxtUserName;privateJLabellblNewUserName;privateJButtonbtnDone;privateJButtonbtnLogin;privateJComboBoxcomboBox;privateString[]dir=newString[100];pri

c++ - 对于具有默认分配器的标准容器,std::container::size_type 是否保证为 size_t?

喜欢:std::string::size_typestd::list::size_typestd::map::size_typestd::vector::size_type等等两者都是cplusplus.com和cppreference.com说他们通常是size_t,但它们是否真正、明确地保证为size_t的标准除非使用自定义分配器? 最佳答案 对于STL容器-不。[container.requirements.general]中标准的表96,其中列出了任何容器的容器要求X,解释得很清楚:但是,对于basic_string,siz

c++ - 是否尝试修改 const_cast-ed,但动态分配的常量对象仍然是未定义的行为?

这个问题在这里已经有了答案:Canaheap-allocatedobjectbeconstinC++?(6个答案)关闭7年前。例如:constint*pc=newconstint(3);//notetheconstint*p=const_cast(pc);*p=4;//undefinedbehavior?特别是,编译器能否优化掉分配给堆的*pc?如果不是,尝试通过p修改*pc是否仍然构成未定义的行为-如果是,为什么?

资源分配问题【算法设计与分析】<动态规划问题>

问题分析:(要把问题分为多步解决,每步求出子问题的多个最优策略后一步依赖于上一步的最有策略,最后一步得出问题的解)(1)首先要考虑分配给项目A的资金与利润的关系。得到此时投资数x与其相对应的的关系。(2)其次要考虑分配给前两个项目A,B的总资金与利润的关系。得到此时投资数x与其相对应的的关系。(3)最后考虑分配给第三个项目C的资金与利润的关系得到此时投资数x与其相应的的关系。最终利润为此时x为投资C项目的资金。数学建模:开辟二维数组q来存储原始利润的数据另开辟一维数组f储存当前最大收益情况开辟记录中间结果的一维数组temp,记录正在计算的最大收益开辟二维数组a记录当前投资最大收益时每个项目所分

c++ - 通过 copy-and-swap 分配与两个锁

借款HowardHinnant'sexample并将其修改为使用copy-and-swap,这op=线程安全吗?structA{A()=default;A(Aconst&x);//Assumeimplementscorrectlockingandcopying.A&operator=(Ax){std::lock_guardlock_data(_mut);usingstd::swap;swap(_data,x._data);return*this;}private:mutablestd::mutex_mut;std::vector_data;};我相信这是线程安全的(记住op=的参数是按

c++ - 堆栈分配的 RAII 对象与 DI 原则

在C++中,我经常使用RAII风格的对象来使代码更可靠,并将它们分配到堆栈上以提高代码的性能(并避免bad_alloc)。但是在堆栈上创建具体类的对象违反了依赖倒置(DI)原则并阻止模拟此对象。考虑以下代码:structIInputStream{virtualvectorread(size_tn)=0;};classConnection:publicIInputStream{public:Connection(stringaddress);virtualvectorread(size_tn)override;};structIBar{virtualvoidprocess(IInputS

c++ - 引用的内存分配

看了很多pointers之间的区别&references.这里是我学到的东西的简要描述。1。定义指针时分配内存。然而,引用是名称别名,因此没有为其分配内存(Isitcorrect?)。2。引用必然在定义时被初始化,因为引用是用常量指针实现的,因此不能指向另一个对象。然而,指针不必在定义时初始化,因此也可以更改为指向其他对象。3。引用会自动取消引用。当你写cout;它被编译器自动取消引用并被视为cout;由编译器。这里,p是引用。对引用的引用是不可能的。无论何时,当您声明对引用的引用时,它实际上是对同一个变量的引用。例如inti;int&r1=i;int&r2=r1;编译器将语句2解释为

c++ - 动态内存分配-为什么程序末尾没有 "delete"?

我有2个关于以下程序的问题:1.程序是只创建动态元素(矩形和六边形类型),还是指向它们的指针也是动态的?2.为什么程序最后没有delete。例如这样的事情:(如果我正确地假设只有元素是动态的..)for(i=0;i非常感谢,这个网站在我的老师无法帮助的事情上帮助了我很多!石然程序是:intmain(){//CreatearrayofpointerstoShapesofvarioustypes.constintNUM_SHAPES=3;Shape*shapeArray[]={newHexagon(),newRectangle(),newHexagon()};//Setpositionso

c++ - 容器使用的内部类型的内存分配

C++11标准在一般容器要求中有以下几行。(23.2.1-3)Forthecomponentsaffectedbythissubclausethatdeclareanallocator_type,objectsstoredinthesecomponentsshallbeconstructedusingtheallocator_traits::constructfunctionanddestroyedusingtheallocator_traits::destroyfunction(20.6.8.2).Thesefunctionsarecalledonlyforthecontainer’