草庐IT

string-comparison-functions

全部标签

.net - 理解 C++ .Net 中的 String^

我记得在某处看到“^”运算符在托管C++代码中用作指针运算符。因此“^”应该等同于“*”运算符吧??假设我的理解是正确的,当我开始理解.Net并编写一些示例程序时,我遇到了一些这样的代码:String^username;//myunderstandingisyouarecreatingapointertostringobj..//thereisnomallocornewthatallocatesmemorytousernamepointer.username="XYZ";//shouldn'tyoubedoingamallocfirst???isn'titnullpointer我无法理

c++ - "contains string"的快速索引

在我的应用程序中,我有多达数百万个短字符串(大多数短于32个字符)。我想实现一个带有附加列表的搜索框,该列表仅包含包含在搜索框中输入的整个字符串的元素。我怎样才能预先建立一个索引来快速找到这样的字符串?所有排序的STL容器检查整个字符串。对于输入的搜索字符串“str”,我需要找到所有包含“str”的字符串:“mainstreet”、“struve”、“ustr”等。 最佳答案 您可以构建一个Permutermindexes.对于“struve”,您将插入Radixtree(或通用搜索树):struve$truve$sruve$stu

c++ - 使用 const char[] 或 const std::string 哪一个?

哪个对字符串文字更好,标准字符串还是字符数组?我的意思是说常量字符串,比如说constcharname[]="so";//ortouseconststringname="so"; 最佳答案 对于字符串文字,并且仅对于来自文字的字符串常量,我会使用constchar[]。std::string的主要优点是它有免费的内存管理,但这不是字符串文字的问题。它是文字的实际类型,它可以直接用于任何需要旧C样式空终止字符串或C++字符串(隐式转换开始)的API。您还可以通过使用数组而不是指针来获得编译时大小的实现。现在,在定义函数接口(inter

c++ - 修复 GCC 中的 "comparison is always false ..."警告

我遇到了一个我确定很容易解决的问题,但我不知所措......我有一个执行以下代码的模板:Tvalue=d;if(std::numeric_limits::is_signed){if(value现在,出于显而易见的原因,当此代码针对无符号类型编译时,GCC会给我一个警告(由于数据类型的范围有限,比较总是错误的)。我完全理解这背后的原因,我进行了numeric_limits检查以查看是否可以让编译器关闭它(它适用于MSVC)。唉,在GCC下,我得到了警告。有什么办法(除了禁用警告,我什至不知道你是否可以使用GCC)来修复这个警告?代码永远不会被调用,我假设优化器也会编译它,但我无法摆脱警告

C++ 将字符串数组 [] 复制到 vector <string>

所以我正在使用成员函数“插入”创建此类,以从字符串数组复制到作为vector数组的类内容。这个中止错误不断弹出,说我正在越过Vector端,但我不明白为什么......代码如下:///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Mapclass/////////////////////classMap{private://////////////////////////////////////

.NET System::String 到存储在 char* 中的 UTF8 字节

我正在将一些非托管C++代码包装到.NET项目中。为此,我需要将System::String转换为存储在char*中的UTF8字节。我不确定这是否是最好的或什至是正确的方法,如果有人可以看一下并提供反馈,我将不胜感激。谢谢,/大卫//CopyintoblankVisualStudioC++/CLRcommandlinesolution.#include"stdafx.h"#includeusingnamespaceSystem;usingnamespaceSystem::Text;usingnamespaceSystem::Runtime::InteropServices;//Test

RabbitMQ(十二)Cannot deserialize value of type `java.lang.String` from Object value 报错整理

目录1.核心报错内容:2.完整报错内容:3.报错原因:4.解决方案:消息接收类型错误1.核心报错内容:Cannotdeserializevalueoftypejava.lang.StringfromObjectvalue(tokenJsonToken.START_OBJECT)2.完整报错内容:org.springframework.amqp.rabbit.listener.exception.FatalListenerExecutionException:Illegalnullidinmessage.Failedtomanageretryformessage:(Body:'[B@7f8bf9

c++ - "more than one instance of overloaded function "标准::战俘 "matches the argument list"

使用C++,我尝试#defineTINYstd::pow(10,-10)我为定义了TINY的类(.h)提供了带有#include和命名空间信息的代码#pragmaonce#include"MMath.h"#include#include#includeusingnamespacestd;#defineTINYstd::pow(10,-10)我在.cpp文件中的一些函数实现中使用了TINY,而TINY给出了错误IntelliSense:morethanoneinstanceofoverloadedfunction"std::pow"matchestheargumentlist什么是正确的

C++ 设计 : functions with boolean options

我有一个关于C++中“良好设计实践”的问题。我正在用C++11编写一个数字库,我使用了很多元编程和基于模板的技术。但我有一个非常基本的问题:考虑一个函数,它可以有两个非常接近的行为,除了一个可以由boolean标志激活的选项。我只考虑一个可以由开发人员设置/取消设置的标志,而不是一个可以在运行时设置/取消设置的标志。设计有3种可能性:1)编写两个在名称中带有显式选项的函数:myFunctionFlag1(...);myFunctionFlag2(...);2)使用模板参数:templatemyFunction(...);3)使用可变参数:myFunction(...,constbool

c++ - 如何检查 std::string 是否确实是整数?

以下代码将std::string转换为int,问题在于它无法辨别是真正的整数还是随机字符串。有没有系统的方法来处理这样的问题?#include#include#includeintmain(){std::stringstr="H";intint_value;std::istringstreamss(str);ss>>int_value;std::cout编辑:这是我喜欢的解决方案,因为它非常简约和优雅!它不适用于负数,但无论如何我只需要正数。#include#include#includeintmain(){std::stringstr="2147483647";intint_valu