草庐IT

find2perl

全部标签

c++ - 在 std::find 中使用来自不同命名空间的运算符

我有以下自动生成的代码:#include#includenamespacefoo{structS{};namespaceinner{booloperator==(constS&,constS&){returntrue;}}}namespacebar{voidfunc();}我现在想使用STL的find算法在容器中搜索S对象:voidbar::func(){std::vectorv;foo::Ss;std::find(v.begin(),v.end(),s);}但是我得到这个错误:/opt/compiler-explorer/gcc-8.3.0/include/c++/8.3.0/bit

c++ - 从 C++ 程序运行 perl 程序

我有一个C++程序来计算库存,当它低于某个水平时,我想调用我的perl程序,它将订单详细信息写入数据库。我阅读了有关从C++调用Perl的文档,并尝试使用此示例代码#include#includestaticPerlInterpreter*my_perl;intmain(intargc,char**argv,char**env){char*args[]={NULL};PERL_SYS_INIT3(&argc,&argv,&env);my_perl=perl_alloc();perl_construct(my_perl);perl_parse(my_perl,NULL,argc,argv

c++ - set::find() 没有找到

这段代码有问题(cubeBoxData是一组cubeBox):cubeBoxtemp(bx,by,bz);cubeBoxData.insert(temp);set::iteratori=cubeBoxData.find(temp);const_cast(*i).addCube(x,y,z);问题是cubeBoxData.find(temp);没有找到temp,然后程序尝试调用addCube()失败,我不知道为什么,因为这段代码工作正常(只需更改第三行):cubeBoxtemp(bx,by,bz);cubeBoxData.insert(temp);set::iteratori=find(

c++ - std::map<key_type, value_type>::find(different_key_type)

我有一张map:std::mapmyMap;但是,在某些情况下,我想通过比较TyString==TyStringRef来std::map::find一个条目,即myMap.find(TyStringRef("MyString"));原因是TyString包装了一个它自己分配和释放的constchar*。但是,为了只找到一个条目,我不喜欢分配一个新的字符串,而是我只想使用引用(TyStringRef只包装一个constchar*而不分配或释放内存)。当然,我可以将TyStringRef转换为TyString,但这样我就有了上述的内存开销。有解决这个问题的智能方法吗?谢谢!

c++ - 是否有用于 C 和/或 C++ 的数据库访问库,其接口(interface)与 Perl 的 DBI 类似?

我愿意写Perl的一个子集DBIC++中libodbc(或unixODBC)的接口(interface)。我相信这样做会让我更好地专注于我的目标。顺便说一句,如果已经有类似的东西,我宁愿避免重新发明轮子。 最佳答案 NVM,没有odbc接口(interface),但它类似于DBI(因为DBI除了在DBD::ODBC中不使用odbc)libdbi-http://libdbi.sourceforge.net/libdbiimplementsadatabase-independentabstractionlayerinC,similart

c++ - QtableWidget : How to find value in specific column

我需要使用qtablewidget检查特定值是否在特定列中。在我的例子中,我需要检查第一列ID是否已经存在,如果是,我需要包含行的编号来更新该行,否则我想添加该行。QT有没有提供查列或者shou的解决方案 最佳答案 我假设您正在寻找第一列中的值(这就是为什么item(int,int)中的第二个参数为0)并且表名是myQTableWidgetintrows=myQTableWidget->rowCount();boolfound=false;for(inti=0;iitem(i,0)->text()=="Something"){//w

c++ - 带有 boost 的 CMake(在 Windows 上):Could not find libraries?

我正在尝试使用CMake构建我的项目。我也在使用boost。我的CMakeLists.txt文件中的查找包语句是:find_package(Boost1.42所需组件python系统文件系统序列化线程程序选项正则表达式test_exec_monitor)构建失败,我收到的错误消息是:找不到以下Boost库:boost_systemboost_filesystemboost_serializationboost_threadboost_program_options当我检查我的lib目录时,我发现这些库的名称是:libboost-vc100-mt.lib而不是boost_事实上,当我根据

c++ - size_t 数据类型可以安全地用于 str.find() 吗?

我一直在查看字符串的find()函数的代码,它们将结果存储在数据类型为size_t的变量中。然而,据我所知,size_t是一个无符号整数,如果find()没有找到预期的字符串,它会返回-1。例如,如果我有strings="asdf";size_ti=s.find("g")cout它给我4294967295。但是,如果我用int数据类型替换size_t,它会给我-1。奇怪的是,当我像这样进行比较时strings="asdf";size_ti=s.find("g")if(i==-1){do_something;}无论i是size_t还是int都有效。那我用哪个?int还是size_t?

c++ - SWIG:仅使用 header 和共享库为 Perl 包装 C++,无法定位可加载对象错误

我正在尝试学习SWIG,但在让SWIG在Linux机器上使用perl时遇到了一些问题。我有文件Dog.h、Crow.h、Animal.i和libmylib.so。所有这些文件都在同一个目录中。libmylib.so是使用Dog.cpp和Crow.cpp编译的,它们分别引用Dog.h和Crow.h。我的Animal.i文件如下:%moduleAnimal%{/*Includestheheaderinthewrappercode*/#include"Dog.h"#include"Crow.h"%}/*Parsetheheaderfiletogeneratewrappers*/%includ

c++ - 我可以 std::find stringstream 中的字符串吗?

我有一个字符串流,我想对其进行迭代并确定其中是否存在子字符串。我知道我可以转换为字符串并执行std::string::find(),但我只是希望尽可能避免从字符串流到字符串的转换。我知道以下内容不起作用,因为istream_iterator使用char作为其类型(而非字符串)stringstreamssBody;stringsFindThis;...autoitr=std::find(istreambuf_iterator(ssBody),istreambuf_iterator(),sFindThis);但我能否以某种方式在不转换为字符串的情况下使用std::find或类似的方法在st