草庐IT

back_image_widget

全部标签

c++ - push_back 新元素到 vector

我有这个vector:std::vectormy_vector;我想使用默认构造函数添加新项目。所以,我写:my_vector.push_back(my_class());有没有办法不直接提及类型就可以做到这一点?。例如:my_vector.push_back(auto());//imaginarycode 最佳答案 std::vector有一个名为emplace_back的成员函数它根据提供给函数的参数在vector中构造vector元素类型的新实例。所以如果my_class是默认可构造的,你可以这样做:my_vector.emp

c++ - Qt5Widgets.dll 丢失了吗?

这个问题在这里已经有了答案:DLLismissingwhenlaunchingQtGUIapp(2个答案)关闭9年前。我正在使用Qt5和QtCreator。如果我从QtCreator本身启动它,我的程序工作得很好,但如果我尝试从debug或release.exe文件文件夹,我只会得到一个错误:Theprogramcan'tstartbecauseQt5Widgets.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.我是Qt的新手,不知道是什么原因造成的,没有从谷歌找到任何像样的结果。我已经尝试

c++ - 是否存在用于Content Aware Image转换的C/C++开源库?

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。已关闭6年。Improvethisquestion我需要它至少具有ContentAwareFill,ContentAwareImageResizing这样的功能。我需要它,因为可以从代码中使用的普通C/C++库可能依赖于其他开放源代码库。但是带有可编译为独立应用程序的代码示例!那么有没有这样的图书馆?是否有任何用于内容感知图像编辑/转换的C或C++开源库? 最佳答

c++ - 我可以始终使用 std::inserter(container, container.end()) 而不是 std::back_inserter(container) 吗?

std::back_inserter仅适用于带有push_back的容器,因此它不适用于set和map另一方面,std::inserter适用于所有容器类型。那么我可以一直使用std::inserter(container,container.end())吗?那么下面的代码是否适用于所有类型的容器?templateTContainercreate(TElementelement){TContainercontainer;autoinserter=std::inserter(container,container.end());for(inti=0;i>(1);create>(1);

c++ - 安全使用 vector.emplace_back( new MyPointer ); vector 内部的故障会导致内存泄漏吗?

使用安全吗vector.emplace_back(newMyPointer());或者vector中抛出的异常或某些故障是否会导致内存泄漏?如果先将指针放在一个临时的unique_ptr中,那么执行以下某种形式会更好吗?vector.emplace_back(std::unique_ptr(newMyPointer()));因此,如果发生vector故障,临时unique_ptr仍会清理内存? 最佳答案 它不安全,如果您使用第一个版本会造成内存泄漏。documentation表示如果抛出异常,对emplace的调用将无效-这意味着您

c++ - 如果我使用 vector::begin() 而不是 std::back_inserter(vector) 作为 set_intersection 的输出会怎样?

我一直在使用高度简洁和直观的C​​++语法来查找两个排序的vector的交集并将结果放入第三个vector:vectora,b,c;//...std::set_intersection(a.begin(),a.end(),b.begin(),b.end(),std::back_inserter(c));这应该将c设置为intersection(a,b),假设a和b已排序。但是如果我只使用c.begin()会怎么样(我想我在某个地方看到了一个例子,这就是我这样做的原因):std::set_intersection(a.begin(),a.end(),b.begin(),b.end(),c

c++ - 是否存在将 push_back 替换为 emplace_back 不正确的情况?

我能否通过将std::vector::push_back替换为emplace_back并使用C++11编译器编译它来破坏有效的C++03程序?通过阅读emplace_back引用,我认为这不应该发生,但我承认我没有完全获得右值引用。 最佳答案 我构建了一个简短的示例,当push_back被替换为emplace_back时实际上无法编译:#includestructS{S(double){}private:explicitS(int){}};intmain(){std::vector().push_back(0);//OKstd::v

vector.back()和vector.end()有什么区别?

我是一个新的C++学习者,并且我读了一个有关C++STL访问向量的元素的代码块。为什么第6、7和8行的代码需要减去1等于第5行的代码?1.std::vectorv;2.v.push_back(999);3.//fillupthevector4.//...5.intj=v.back();6.intj=v.[size-1]7.intj=v.at(v.size()-1)8.intj=*(v.end()-1)看答案这是哪个说明v:[1|2|3|4|...|999]🡑🡑🡑front()back()end()🡑begin()在哪里front()和back()分别返回(const)引用第一个和最后一个元素,

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# 或 C++ 游戏 : many 16 color images loaded into RAM. 有效的解决方案?

我正处于制作格斗游戏的计划阶段,不确定如何处理与内存相关的问题。背景资料:-仍在争论是使用C#(XNA)还是C++。在我们探索如何用两种语言解决这个问题之前,我们不想做出任何promise。-如果可能,使用最大256MBRAM会更好。-将同时出现两个角色,这些角色只能在战斗之间改变。在战斗之间有时间加载/释放内存,但游戏需要在战斗期间以每秒60帧的恒定帧数运行。每帧16.67ms-每个字符的图像总数在数百个以下。每张图片大约为200x400像素。在任何给定时刻,每个角色只会显示一张图像。根据我的计算,未压缩的每张图像大约需要300kb;整个角色超过100MB。这太接近256MB的限制了