草庐IT

number_string

全部标签

c++ - 有效比较 QString 和 std::string 是否相等

我想有效地比较一个QString和一个std::string是否相等。哪种方法最好,而且可能无需创建中间对象? 最佳答案 QString::fromStdString()和QString::toStdString()浮现在脑海中,但它们会创建字符串的临时拷贝,所以afaik,如果你不这样做如果不想拥有临时对象,您将不得不自己编写此函数(尽管效率更高是个问题)。例子:QStringstring="string";std::stringstdstring="string";qDebug()顺便说一句,在qt5中,QString::toS

c# - 是否有与 boost::interprocess::basic_string 等效的 C#?

在C++中,您可以使用boost::interprocess定义一个boost::interprocess::basic_string,它基本上是对存储在内存映射文件中的字符串的抽象。您可以像在您的应用程序中使用任何其他字符串一样无缝地使用它(当然假设您注意线程安全)。是否有任何等效的C#库/nuget包/代码段? 最佳答案 没有。但是,即使可以透明地实现,C#中的字符串也是不可变的。因此,我认为拥有一个像那样的图书馆甚至不会非常有用。 关于c#-是否有与boost::interproc

c++ - boost::lexical_cast<std::string>(Int_Type) 可以抛出吗?

有没有可能boost::lexical_cast(Int_Type)扔?我唯一能想到的是字符串没有内存的地方,但是还有其他更合理的选择吗? 最佳答案 根据documentation,lexical_cast可以扔bad_lexical_cast.最重要的是,正如您已经提到的,可能存在动态分配,它总是会导致bad_alloc异常。编辑:至于具体情况lexical_cast,除了分配错误之外,链上的任何部分似乎都不太可能失败,但文档并不(据我所知)保证不会出现“错误转换”异常。 关于c++-

c++ - cplusplus.com 说 std::string "shall not be dereferenced"的结尾

如果你能为我澄清一些困惑,我会很高兴。我正在编写一个函数来删除字符串中的重复字符,例如"AB-->"AAABB"。voidremove_dups(std::string&str){std::string::iteratorit=str.begin();while(it!=str.end()){if(*(it+1)==*it){str.erase(it+1);}else{++it;}}}我测试的时候好像能用。但是,我想知道,不应该有栅栏柱问题吗?当“it”是字符串的末尾时,if语句查看不存在的下一个字符。根据cplusplus.com,尾后字符是一个理论字符,将跟在字符串中的最后一个字符

【错误解决】requests.exceptions.SSLError:wrong version number (_ssl.c:1131)

错误解决:requests.exceptions.SSLError:wrongversionnumber(_ssl.c:1131)requests.exceptions.SSLError:HTTPSConnectionPool(host=‘192.168.79.128’,port=8080):Maxretriesexceededwithurl:/admin/login(CausedbySSLError(SSLError(1,‘[SSL:WRONG_VERSION_NUMBER]wrongversionnumber(_ssl.c:1131)’)))尝试1:进入电脑的“网络和Internet“设置

c# - 翻译 C+ +'s sprintf format string to C#' s string.Format

我找到了下面的C++代码(注释是我自己加的)://frame_nameisachararray//prefixisstd::string//kisaforloopcounter//framesisastd::vectorstringsprintf(frameName,"%s_%0*s.bmp",prefix.c_str(),k,frames[k].c_str());然后我尝试将它翻译成C#//prefixisstring//kisaforloopcounter//framesisListstringframeName=string.Format("{0}_(whatgoesinhere

c++ - Clang:将 bind 或 mem_fn 与 string::c_str 和 transform 结合使用时出现问题

尝试将std::stringvector转换为constchar*vector:#include#include#include#includeintmain(intargc,char**argv){std::vectorvalues;values.push_back("test1");values.push_back("test2");values.push_back("test3");std::vectorc_values(values.size());std::transform(values.begin(),values.end(),c_values.begin(),std::

c++ - "std::string + char"表达式是否创建另一个 std::string?

下面的表达式是否创建了另一个std::string然后将其添加到s1?std::strings1="abc",s2="xyz";s1+=s2+'b';它是否应该防止这种情况(它们无需额外工作就可以添加到s1)?std::strings1="abc",s2="xyz";s1+=s2;s1+='b';这些规则是否也适用于“std::string+std::string”表达式? 最佳答案 所有涉及std::string的重载+运算符都会返回一个新的std::string对象。这是您在youfinallydecipherthereleva

c++ - 带有 std::string 的文字类仅适用于模板特化?

我的编译器不允许以下定义,因为std::string有一个非平凡的析构函数(这说明teststr不能有平凡的析构函数成员(member)没有):classteststr{private:std::string_m;public:constexprteststr(std::stringvalue):_m(value){};constexprstd::stringm()const{return_m;}voidm(std::stringvalue){_m=value;}};但是,teststr的以下等价定义(据我所知)是允许的:templateclasstest{private:T_m;pu

c++ - 检查类型是否可以作为 boost::lexical_cast<string> 的参数

我有以下特征类(IsLexCastable)来检查是否可以通过调用boost::lexical_cast将类型转换为字符串.它错误地返回true对于vector.#include#include#include#include#include#includeusingnamespacestd;usingnamespaceboost;namespacestd{///AddingtostdsincethesearegoingtobepartofitinC++14.templateusingenable_if_t=typenamestd::enable_if::type;}templates