草庐IT

string.format

全部标签

c++ - clang-format:宏的缩进

我正在尝试将clang-format应用于现有代码库并遇到以下问题:简化(和格式化)示例代码:#defineQUERY_BEGIN()#defineQUERY_NORESULT()#defineQUERY_END()voidfoo(){inta=0;QUERY_BEGIN()a=1;QUERY_NORESULT()a=2;QUERY_END()}我设置了以下选项:MacroBlockEnd:'QUERY_END'MacroBlockBegin:'QUERY_BEGIN'我要实现的是宏部分的如下格式:QUERY_BEGIN()a=1;QUERY_NORESULT()a=2;QUERY_E

c++ - 从 char* 初始化 std::string 而不复制

我遇到这样一种情况,我需要处理大量(许多GB)数据:通过附加许多较小的(Cchar*)字符串构建一个大字符串修剪字符串将字符串转换为C++conststd::string进行处理(只读)重复每次迭代中的数据都是独立的。我的问题是,我想尽量减少(如果可能的话消除)堆分配的内存使用量,因为目前这是我最大的性能问题。有没有一种方法可以将C字符串(char*)转换为STLC++字符串(std::string)而无需std::string在内部分配/复制数据?或者,我可以使用stringstreams或类似的东西来重新使用大缓冲区吗?编辑:感谢您的回答,为了清楚起见,我认为修改后的问题是:如何有

c++ - to_string 不是 std 的成员,g++ (mingw)

我正在制作一个小型词汇内存程序,其中会随机闪现单词以了解含义。正如BjarneStroustroup告诉我们的那样,我想使用标准C++库,但我一开始就遇到了一个看似奇怪的问题。我想将一个long整数更改为std::string以便能够将其存储在文件中。为此,我使用了to_string()。问题是,当我用g++(版本4.7.0,如其--‍version标志中所述)编译它时,它说:PSC:\Users\Anurag\SkyDrive\College\Programs>g++-std=c++0xttd.cppttd.cpp:Infunction'intmain()':ttd.cpp:11:2

【Java】【SQL】DATE_FORMAT函数详解

在实际应用开发中,使用sql语句也属于开发者的一部分,这次来说说DATE_FORMAT函数。引言:实际上在使用Java开发过程中,有很多业务场景下,都有时间类型的参数参与。前后端进行交互的时候,针对时间类型的格式都会做一个业务上的统一,方便开发且增加效率。关于后端的逻辑有两个层面可以进行优化,一个是底层sql方面,一个是业务层方面,这两者之间的处理都可以影响整个业务方法的响应时间。本次分享在sql层面使用DATE_FORMAT函数对时间类型数据的处理1、简单介绍:DATE_FORMAT是SQL中的一个函数,用于将日期或时间格式化为指定的格式,以下是sql形式的格式DATE_FORMAT(dat

c++ - to_string 不是 std 的成员,g++ (mingw)

我正在制作一个小型词汇内存程序,其中会随机闪现单词以了解含义。正如BjarneStroustroup告诉我们的那样,我想使用标准C++库,但我一开始就遇到了一个看似奇怪的问题。我想将一个long整数更改为std::string以便能够将其存储在文件中。为此,我使用了to_string()。问题是,当我用g++(版本4.7.0,如其--‍version标志中所述)编译它时,它说:PSC:\Users\Anurag\SkyDrive\College\Programs>g++-std=c++0xttd.cppttd.cpp:Infunction'intmain()':ttd.cpp:11:2

c++ - 从 boost::shared_ptr<string> 返回 C 字符串

我将一些C++代码包装在函数中,以便使C++方法在C中可用。C++API方法返回boost::shared_ptr通常的对象。我在C++中导出的函数如下所示:extern"C"constchar*Hazelcast_Map_get_int_string(Hazelcast_Client_t*hazelcastClient,constchar*mapName,intkey,char**errptr){IMapmap=hazelcastClient->client->getMap(mapName);boost::shared_ptrvalue=map.get(key);string*str

c++ - 如何允许 clang-format 在一行中格式化空类/结构?

具有以下结构定义:structcity{};structcountry{};我想要clang-format像这样为我格式化structcity{};structcountry{};我怎样才能做到这一点?我可以看到很多选项,例如AllowShortBlocksOnASingleLine、AllowShortFunctionsOnASingleLine或AllowShortIfStatementsOnASingleLine但没有AllowShortClassDefinitionsOnASingleLine(或类似的). 最佳答案 很遗憾

c++ - 为什么按值传递 string_view?为什么 Visual Studio 不能对此进行优化?

根据我的直觉,我假设新的string_view需要通过引用传递,因为这样效率更高(只传递指针而不是完整的类)。然而,一些消息来源表明最好按值传递它,避免“别名”问题。C++viewtypes:passbyconst&orbyvalue?https://abseil.io/tips/1在尝试几种替代方案时,我证实了我的直觉,如果该函数只是转发string_view(所有源均使用/Ox编译),那么通过引用传递会更快比如这段代码externautootherMethodByReference(conststd::string_view&input)->void;autothisMethodB

c++ - 获取 UTF-8 编码的 std::string 的实际长度?

我的std::string是utf-8编码的,很明显,str.length()返回了错误的结果。我找到了此信息,但不确定如何使用它来执行此操作:Thefollowingbytesequencesareusedtorepresentacharacter.ThesequencetobeuseddependsontheUCScodenumberofthecharacter:0x00000000-0x0000007F:0xxxxxxx0x00000080-0x000007FF:110xxxxx10xxxxxx0x00000800-0x0000FFFF:1110xxxx10xxxxxx10xxx

c++ - 将 boost::format %s 说明符与 UTF-8 字符串一起使用

我们正在为具有大型代码库的现有应用程序添加对UTF8的支持。此应用程序使用boost::format(),非ASCII字符的输出未正确对齐。具体来说,当使用%{width}.{length}s说明符时,boost::format()会计算字符数,这对于utf8来说不是“做正确的事”字符串。我认为应该可以更改字符串长度代码(可能是string::size())以使用utf8len()或类似的东西,基于……什么?在这种情况下,更改现有代码库以使用UCS2(或UCS4,或UTF-16等)是不切实际的,但可以修改boost::format()如有必要。我希望其他人遇到过这种需求,并能指出一个可