草庐IT

string-comparison-functions

全部标签

java - C++ 将 HashMap<string, boolean> 对象返回给 Java

我有一个JAVA调用的JNI函数,它需要构建并返回一个HashMap。map的键是“字符串”,相应的值是“boolean值”或“boolean值”(只要有效,任何一个都可以)。使用我当前的代码(如下),字符串已成功添加到返回的映射中,并且可以在Java中访问。然而,当试图访问JAVA中的值时,它出现为空。jclassmapclass=env->FindClass("java/util/HashMap");jmethodIDinitmeth=env->GetMethodID(mapclass,"","()V");jmethodIDputmeth=env->GetMethodID(mapc

c++ - std::cin >> std::string 是如何实现的?

特别是,代码如何检查字符的内存是否应该重新分配?或者用户输入了多少个字符?如果我想将C字符串的值分配给我的字符串类的实现,我可能会做这样的事情String&operator=(String&to,constchar*from){if((strlen(from)+1)>to.size){if(to.str!=NULL){delete[]to.str;to.str=NULL;}to.size=strlen(from)+1;to.str=newchar[to.size];}strcpy(to.str,from);returnto;}很简单。但是std::string的operator>>真的

c++ - 为什么在 C++11 中会多次提及 "function prototypes"?当然这些在 C++ 中不存在

C++11标准多次提及“函数原型(prototype)”。没有任何相关特征的定义,但在随机的地方,如:[C++11:3.3.4]中的“函数原型(prototype)范围”(其定义实际上承认它在谈论“函数声明”);[C++11:17.5.1.4/1]中库类型定义子句的编辑描述,脚注175(这似乎指的是C功能);[C++11:20.9.4.3/6]它描述了假设的templatetypenameadd_rvalue_reference::typecreate();作为“函数原型(prototype)”。在[C++11:20.9.6/4]同样的事情;附录[C++11:C.1.7]其中谈到了C中

c++ - 警告 : array 'alphabet' initialized by parenthesized string literal

在模板函数中,我目前有以下行:staticconstunsignedcharalphabet[17]=(Uppercase)?("0123456789ABCDEF"):("0123456789abcdef");其中Uppercase是模板参数。使用-pedanticgcc告诉我:warning:array'alphabet'initializedbyparenthesizedstringliteral'("0123456789abcdef")'如何摆脱该消息(我希望alphabet位于堆栈中)? 最佳答案 使代码明确有效的最简单方法

c++ - VS 2010 无法打开源文件 "string"

突然之间,我的VS2010项目中的智能感知开始变得疯狂。一切都正确构建,但它不再能找到基本的C++头文件,如字符串、映射等。它不再识别std::命名空间,而且它通常只是乱七八糟。代码仍然可以编译,但无论我做什么,我都无法让Intellisense再次正常工作。我发现的最接近的现有问题在这里:VS2010error-cannotopenfile"iostream"但该解决方案对我不起作用。我同时安装了2012和2010,所以我想知道是不是其中一个搞砸了另一个。不过,我为此使用的是2010。 最佳答案 好的,我想通了。与此相关:VS20

c++ - std::string::reserve() 和 std::string::clear() 难题

这道题从一段代码开始,只是因为我觉得这样更容易看出我在追求什么:/*static*/voidUrl::Split(std::list&url,conststd::string&stringUrl){std::stringcollector;collector.reserve(stringUrl.length());for(autoc:stringUrl){if(PathSeparator==c){url.push_back(collector);collector.clear();//Sabotagesmyoptimizationwithreserve()above!}else{col

c++ - string s怎么改成char * a[]?

我要转型字符串s="aaa,bbb,ccc"进入:char*a[]={"aaa","bbb","ccc"}你能帮我编写程序来处理这个过程吗?我会尝试这样编程:strings="aaa,bbb,ccc";char*a[];charid[]="";strcpy(id,s.c_str());constchar*split=",";char*p;p=strtok(id,split);while(p!=NULL){inti=0;printf("%s\n",p);a[i]=p;i++;p=strtok(NULL,split);}我哪里错了?谁能指点一下? 最佳答案

c++ - std::function 性能与模板相比

这个问题在这里已经有了答案:Speedofboundlambda(viastd::function)vsoperator()offunctorstruct(1个回答)关闭7年前。我看了另一个关于std::function的堆栈溢出问题以及为什么它很慢,但我仍然不相信/不明白。我根据问题运行程序并进行了一些修改。#include#include#include#includetemplatefloatcalc1(Ff){return-1.0f*f(3.3f)+666.0f;}floatcalc2(conststd::function&f){return-1.0f*f(3.3f)+666.

c++ - 遗传算法 : Langermann's function and Tournament selection

我在理解如何在我的遗传算法中实现Langermann函数和锦标赛选择时遇到了一些困难。我有this作为Langermann函数的引用,但我不明白C值从何而来,因为我只有X和Y。C值总是一组常数吗?至于锦标赛选择,我想随机选择我的人群中的任意3个人并比较他们的健康状况。一旦能够使用Langermann函数生成适应度值,我会将每个适应度值存储在一个vector中。然后我想从vector中选择3个独特的随机元素并将它们相互比较。如何在不使用相同数字的情况下从vector中选择3个唯一的随机元素?感谢任何帮助! 最佳答案 istheCval

c++ - 从 std::map 中删除 std::function lambda-wrapped 方法

我正在使用std::function和std::map创建一个回调系统。该映射使用int作为键,值为std::function。我将方法绑定(bind)到这些函数中。我想知道如果我调用map.erase(i),会从内存中删除std::function,还是会发生内存泄漏?下面是一些示例代码:#include#include#includeusingnamespacestd;classTestClass{public:TestClass(int_i,map>&test_map):i(_i){test_map[i]=[&](){this->lambda_test();};};voidlam