草庐IT

set_allocated

全部标签

c++ - 如何在实现文件中初始化一个 static const set<string>?

我对staticconstset的初始化似乎不正确,我很感激你的指导方针:obj.h:classobj{...private:staticconstsetkeywords;...}obj.cpp:conststringkw[]={"GTR","LTR","LEQ","GEQ","NEQ","SQRT","sqrt"};constsetobj::keywords=(kw,kw+sizeof(kw)/sizeof(kw[0]));但这会产生错误:error:conversionfrom‘conststring*{akaconststd::basic_string*}’tonon-scala

c++ - Visual Studio 2017 "Object reference not set to an instance of an object."的 cppcheck 插件问题

我正在尝试将cppcheck插件与visualstudio2017一起使用。但是,当我选择工具/使用cppcheck检查当前项目时,它总是说“对象引用未设置为对象的实例。”有什么建议吗?我正在使用MicrosoftVisualStudioProfessional2017,版本15.7.6CPPCheckPlugin1.3.5CMake3.12.1Windows10专业版64位谢谢。 最佳答案 对我来说,在我编辑项目并选中“EnableCodeAnalysisonBuild”后问题就解决了。然后我可以取消选中此选项,但它离开了fals

c++ - std::set 中的函数和方法指针

如所述inanothermessageofmine,不可能将2个成员函数指针与"进行比较。或者至少,这会导致未定义的行为。我刚刚成功地用VisualC++和GCC编译了这段代码:templateclassEventReceiver:publicIFunction{protected:std::settest;std::settest2;...据我所知,要制作任何东西的std::map或std::set,必须可以将集合的值与“ 最佳答案 好吧,编译示例代码实际上误导。事实上,这些套装无法使用。每次尝试向其中插入数据都会产生预期的错误。

c++ - 如何测试使用我可以使用的 MPI 调用 : is there any set of mock functions, 的 C\C++ 代码?

#includedoublef(){doubletimer=MPI_Wtime();returntimer;}我要搜索的是一组模拟MPI函数,所以我可以#include而不是mpi.h并在不链接到MPI库的情况下编译它。它也可能类似于#defineMOCK这将在mpi.h中触发此行为。 最佳答案 据我所知,没有任何模拟可以让您直接#include并完成。但是,无论您选择使用哪种模拟框架,您自己编写所需的函数应该没什么大不了的。只需从一个空header开始,看看您的编译器提示了哪些函数。

c++ - 使用 lambda 表达式作为 std::set 的比较,当它在 vector 中时

我想使用lambda表达式作为std::整数集的自定义比较。这个网站上有很多答案解释了如何做到这一点,例如https://stackoverflow.com/a/46128321/10774939.事实上,#include#include#includeintmain(){autodifferent_cmp=[](inti,intj)->bool{returnjintegers(different_cmp);integers.insert(3);integers.insert(4);integers.insert(1);for(intinteger:integers){std::cou

c++ - 将 boost::unordered_set 作为结果映射传递给 boost::split

有谁知道将boost::unordered_set作为第一个参数传递给boost::split是否合理?在libboost1.42-dev下,这似乎会导致问题。这是导致问题的一个小示例程序,将其称为test-split.cc:#include#include#include#includeintmain(intargc,char**argv){boost::unordered_settags_set;boost::split(tags_set,"a^b^c^",boost::is_any_of(std::string(1,'^')));return0;}然后,如果我运行以下命令:g++

c++ - Bad_alloc 没有在我期望的时候抛出

考虑这个简单的程序:#include#includeintmain(void){conststd::size_tsize=1评论我尝试分配一些荒谬的内存:(1==8GB我添加安全检查捕捉std::exception,应该catchstd::bad_alloc除其他异常(exception)...检查它是否不为空(即使要使此检查真正有意义,我需要a=new(std::nothrow)int[size]-但无论我如何分配内存,它都不起作用)环境安装内存:2GB操作系统:Debian架构:32位问题问题是程序没有提前退出,而是做了这样的事情:rr-@burza:~$g++test.cpp-o

C++ 错误 : Conversion to Execution Character set

问题是我试图在ASCII之外打印一些字符,例如德语变音字符、“ß”等。这些字符不适合普通的char变量,所以显然我试图将它们放在wchar_t中并用L"...."初始化字符串。但是每当这个字符串包含上面的一个字符时,我都会得到提到的错误,但是对于ASCII的所有其他字符都没有问题。u"....",U"......"也会发生这种情况,如果我使用u8"......"它不会产生错误但会打印垃圾。所以问题:如何从ASCII集之外打印这些字符和其他字符?无论如何,这个错误是什么意思?我可以打印字符的唯一方法是调用setlocale()将语言环境设置为环境默认值(德语),然后通过简单地创建一个包含

c++ - 处理 bad_alloc 时使用 cerr 是否安全?

这样使用std::cerr安全吗?try{Something();}catch(std::bad_alloc){cerr它是否使用动态内存?如果失败,它会抛出异常还是什么都不输出? 最佳答案 简单案例有一个失败的大分配-可能是由于程序员的错误-intmain(){try{std::size_tbytesToAllocate;std::cin>>bytesToAllocate;std::unique_ptrptr{newchar[bytesToAllocate-1]};//ops,ifuserenters0orextractionfa

c++ - 如何将带有自定义分配器的 std::vector 传递给需要带有 std::allocator 的函数?

我正在使用外部库(pcl),因此我需要一个不会更改现有函数原型(prototype)的解决方案。我正在使用的一个函数生成一个std::vector>.我接下来要调用的函数需要一个constboost::shared_ptr>>.我不想复制这些元素,因为它在我的代码中已经很慢的关键部分。如果不是因为分配器不匹配,我将通过简单地执行以下操作来绕过shared_ptr要求://codethatgeneratesstd::vector>sourceboost::shared_ptr>indices(newstd::vector);indices->swap(source);//useindic