草庐IT

EGL_BAD_MATCH

全部标签

c++ - 列表迭代器错误 : "no match for operator+" ,

对于下面的代码,我在行的标题中收到错误while((*(It2+code)).exists){voidlocatetohashtable(std::listelist,int*m,std::list&table,std::list&keylist){std::list::iteratorIt2=table.begin();inti=0;intk=0;std::list::iteratorIt;for(It=elist.begin();It!=elist.end();++It){intcode=hash_func(stringIntValue((*It).name),*m,i);whil

c++ - 具有 200GB 可用内存的 Bad Alloc c++

我是C++的新手,我正在研究“压缩传感”,所以我需要处理巨大的矩阵,而MATLAB实际上很慢,所以我用C++编写了我的算法。问题是我存储了大数组(大约100Mb-1Gb)。它们大约是20个阵列。它适用于30Gb的内存,但是当进程需要超过40Gb时它就会停止。我认为这是一个内存问题,我在Linux和Windows(64位操作系统-64位编译器MinGW-200GbRam-intelXeon)上测试过它有什么限制吗?size_ttm=n*m*l;double*x=newdouble[tm];我使用了大约20个这样的数组。n,m~=1000和L~=30这些是典型的尺寸。谢谢

c++ - CPack DEB 生成器 : control-file-has-bad-permissions mdsums 0644 ! = 0644

我正在开发小型控制台应用程序,我正在尝试使用CPack创建Ubuntu包。Ubuntu版本是13.04,我的主要CPack文件在下面。软件包已正确创建,但在尝试使用图形界面(基本上是在Ubuntu中双击deb文件)安装时出现以下警告:Packageisofbadqualitycontrol-file-has-bad-permissionsmdsums0644!=0644有人知道这是什么原因吗?更重要的是,如何修复它?CMake版本是2.8.10.1,但我也尝试使用2.8.11.2,但没有任何变化。我看到,他们在这里遇到了类似的问题,但与fix的性质无关我的主要CPack文件:INCLU

c++ - 获取 std::bad_alloc 错误;如何交叉验证操作系统是否真的内存不足

我有一个C++程序/Linux,它在运行后2-3秒内开始在32GBRAM上出现错误std::badalloc(并由包装器调用者重新启动)。我真正关心的是解决这个问题,但我想一步一步地去建立我对这个问题的理解的信心。看起来系统无法为new请求分配内存(当操作系统内存不足时会发生这种情况)。当程序运行时,我在另一个终端上以尽可能小的间隔(1秒)运行sar命令,但我看到kbcached是~24GB内存。为什么操作系统无法释放缓存并使该内存可用于new请求?要么1秒时间太多(与程序运行的速度相比),要么我在这里做错了什么。基本上我想交叉验证并确定操作系统确实内存不足,因此无法分配内存,然后从这

c++ - 在 libc++ 上,为什么 regex_match ("tournament", regex ("tour|to|tournament")) 失败?

在http://llvm.org/svn/llvm-project/libcxx/trunk/test/re/re.alg/re.alg.match/ecma.pass.cpp,存在以下测试:std::cmatchm;constchars[]="tournament";assert(!std::regex_match(s,m,std::regex("tour|to|tournament")));assert(m.size()==0);为什么这个匹配会失败?在VC++2012和boost上,匹配成功。在Chrome和Firefox的Javascript上,"tournament".mat

c++ std::bad_alloc on std::filesystem::path 追加

我遇到了一个非常奇怪的行为,我将其提炼为一个非常基本的测试:#include#includeintmain(void){conststd::stringname="foo";conststd::filesystem::pathlock_dir="/tmp";std::filesystem::pathlockfile=lock_dir/name;return0;}我用g++-std=c++17-Wall-Wextra-Werror-gfoo.cpp-ofoo编译它。当我运行它时,我在附加两条路径的行上得到一个std::bad_alloc异常。这是我用gdb看到的#0__GI_raise(

c++ - std::match_results::size 返回什么?

我对以下C++11代码有点困惑:#include#include#includeintmain(){std::stringhaystack("abcdefabcghiabc");std::regexneedle("abc");std::smatchmatches;std::regex_search(haystack,matches,needle);std::cout我希望它打印出3但我却得到了1。我错过了什么吗? 最佳答案 你得到1因为regex_search仅返回1个匹配项,size()将返回捕获组的数量+整个匹配值。你的匹配是.

c++ - 如何在 C 语言的 gdb 中调试 St9bad_alloc 失败?

我有一个程序失败了:terminatecalledafterthrowinganinstanceof'std::bad_alloc'what():St9bad_alloc我想这与malloc/free有关,但我不知道是哪一个。我可以在gdb中设置什么断点来中断错误,以便我可以查看堆栈跟踪?该程序是C和C++的组合,使用gcc3.4.2编译。 最佳答案 导致异常的并不是真正的malloc/free,它是“新的”,它肯定在您的应用程序的C++部分中。看起来您提供的参数对于"new"分配来说太大了。'std::bad_alloc'是由以下

c++ - 错误 : out-of-line definition of 'test' does not match any declaration in 'B<dim>'

我有一个小问题让我很烦!!我不知道下面的代码似乎有什么问题。我应该能够实现从父类(superclass)继承的功能,不是吗?但我得到error:out-of-linedefinitionof'test'doesnotmatchanydeclarationin'B'templateclassA{public:virtualdoubletest()const;};templateclassB:publicA{};templatedoubleB::test()const{return0;}我在Mac上使用clang(AppleLLVM5.1版)。 最佳答案

c++ - 有限状态机 : Bad design?

有限状态机通常被认为是OOP中的糟糕设计吗?我经常听到这样的话。而且,在我不得不使用它来处理一个非常古老的、未记录的C++片段之后,我倾向于同意。调试起来很痛苦。可读性/可维护性问题如何? 最佳答案 FSM永远不应该被认为是坏的。它们太有用了,但不习惯它们的人通常会认为它们很麻烦。有许多方法可以使用OOP实现其中之一。有些比其他的更丑。您的底层人员将使用switch语句、跳转表甚至“goto”。如果您正在寻找一种更简洁的方法,我建议您使用Boost'sStateChartlibrary,它专为在C++中实现UML状态图而构建。它利用