草庐IT

LCD_write_chinese_string

全部标签

c++ - 使用 boost::singleton_pool 时处理 std::string/std::vector 成员变量

我正在编写一个性能关键型应用程序,我在其中创建了大量类似类型的对象来下订单。我正在使用boost::singleton_pool用于分配内存。最后我的类看起来像这样。classMyOrder{std::vectorv1_;std::vectorv2_;std::strings1_;std::strings2_;public:MyOrder(conststd::string&s1,conststd::string&s2):s1_(s1),s2_(s2){}~MyOrder(){}staticvoid*operatornew(size_tsize);staticvoidoperatorde

c++11 to_string 与 code::blocks -std=c++11 flag already selected

这是我正在尝试编译的代码,是从某个地方的另一个论坛获得的。//to_stringexample#include//std::cout#include//std::string,std::to_stringintmain(){std::stringpi="piis"+std::to_string(3.1415926);std::stringperfect=std::to_string(1+2+4+7+14)+"isaperfectnumber";std::cout我收到错误:'to_string'不是'std'的成员我在其他论坛上读到选择标志“让g++遵循c++11ISO语言标准[-st

c++ - 从 std::string 流式传输而不制作拷贝?

我有一个网络客户端,其请求方法采用std::streambuf*。此方法通过boost::iostreams::copy实现-将其转换为自定义std::streambuf-知道如何将数据写入网络API的派生类,效果很好。这意味着我可以将文件流式传输到请求中,而无需将其全部读入内存。然而,在某些情况下,必须发送不在文件中的大数据block,因此我包含了一个采用字符串的重载。为了避免重复流中的所有网络代码,显然我应该设置一个表示字符串的streambuf并调用其他方法。我想出的唯一方法是:std::istringstreamss(data);send(ss.rdbuf());不幸的是,is

c++ - 在 C++11 中,在函数中返回一个 std::string 是移动还是复制它?

假设我有以下代码。std::stringfoo(){std::stringmystr("SOMELONGVALUE");returnmystr;}intmain(){std::stringresult=foo();}当我调用“foo”时,mystr中的数据是复制还是移动到result中?我相信它是移动的C++11风格,但我希望得到澄清和/或链接来表明这一点。谢谢!编辑:我想在使用g++为c++11或更高版本编译时我想知道这个问题的答案。 最佳答案 您的示例属于所谓的命名返回值优化,它在thisparagraphoftheC++11s

c++ - 为什么 STL ifstream 和 ofstream 类不将 std::string 作为文件名?

这是对STL的提示。为什么他们将文件名参数作为(char*)而不是std::string?这似乎没有意义。关于这个主题还有另外两个问题:HowtoopenunicodefilenameswithSTLWindowsCodepageinteractionswithC++问题是我有很多看起来像这样的代码:std::ofstreamf(fname.c_str());当我希望它看起来像这样时:std::ofstreamf(fname);上述帖子中提到的其他问题是UTF-16与UTF-8的问题。(UTF-16可能包含会破坏POSIXAPI的NULL)。但这并不是真正的问题,因为实现可以在调用op

c++ - 交替使用 std::string 和 QString

我在用于图形和GUI组件的软件系统中广泛使用Qt。然而,对于大多数内部算法和数据处理,Qt扮演的角色较小。我经常遇到需要将std::string转换为QString或相反的情况。我的倾向是尽可能多地使用std::string并在我需要将字符串传递给Qt类(例如那些与文件系统一起使用的类)时仅使用QString。今天早上我在编程时,突然想到在我的代码中散布std::string和QString可能是一个糟糕的设计。我应该完全切换到QString吗?还有其他人遇到过这种设计选择吗?Qt提供了很多与STL相同的功能,但我仍然犹豫要不要完全切换,因为Qt不够标准化和稳定。

c++ - 在 boost::asio 中使用 write() 发送原始数据

我最近决定为我的套接字使用boost::asio,但现在我遇到了一个问题:似乎缺少文档。我想做的是编写一个函数来发送包含以下结构的消息:2个字节的无符号整数(uint16_t)用于操作码所有字节之后的所有字节(灵活数量)是任何类型的数据(转换为void*)。这些数据将根据操作码进行操作例如,如果操作码为1,可能定义为OPCODE_LOGIN,则操作码后面的字节可能包含包含登录信息等的字符串。boolsendMessage(tcp::socket*sock,uint16_topcode,void*data){void*fullData=malloc(sizeof(uint16_t)+si

c++ - 使用 std::vector<std::string> 的快速搜索算法

for(std::vector::const_iteratorit=serverList.begin();it!=serverList.end();it++){//foundamatch,storethelocationif(index==*it)//indexisastring{indexResult.push_back(std::distance(serverList.begin(),it));//std::vector}}我已经编写了上面的代码来查看一个字符串vector并返回另一个包含任何“命中”位置的vector。有没有办法做同样的事情,但速度更快?(如果容器中有10,000

The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement

今天发现mysql报错,记录下问题原因;错误信息:TheMySQLserverisrunningwiththeLOCK_WRITE_GROWTHoptionsoitcannotexecutethisstatement向aliyun写入数据,报错。阿里云的一个保护策略,空间剩余不足时,禁止数据写入;可用navicat执行以下sql查看剩余空间大小;SELECTTABLE_SCHEMA,concat(TRUNCATE(sum(data_length)/1024/1024,2),‘MB’)ASdata_size,concat(TRUNCATE(sum(index_length)/1024/1024,

C++ map<string, vector<char>> 访问

我创建了一个vectormap,如下所示:map>myMap;stringkey="myKey";vectormyVector;myMap[key]=myVector;我希望能够将“char”附加到map中的vector,但我无法弄清楚如何访问所述vector以在创建特定键/值(vector)后附加。有什么建议么?我正在对char进行迭代,并且可能会在我进行时向vector添加很多内容,所以最好有一种简单的方法来完成它。谢谢。我希望map中的vector在我进行时被附加。我不需要原始vector...我只需要返回我创建的键/vector映射(在追加之后),这样我就可以将它传递给另一个函