草庐IT

STL-string

全部标签

c++ - 如何使用 STL 算法找到分隔字符串中两个不同字母的最短星号序列?

我有这样一个字符串:A*A**B***A**我对两个不同字母之间的星号序列感兴趣,特别是我需要找到最短的此类序列的长度。对于上面的字符串,答案当然是2:A**B我可以使用我习惯的传统循环轻松解决这个问题:conststrings="A*A**B***A**";string::size_typelast_letter=-1,min_seq_len=s.size();for(inti=0;i但是,有没有办法使用C++来做到这一点algorithmslibrary、迭代器等?我问这个问题是因为我注意到我在学习如何使用这些工具来解决算法问题时遇到了困难,相反我发现手动编写循环更容易。我想最终学

c++ - 如何使用STL获取系统的小数分隔符?

要使用正确的数字分隔符('.'或',')生成csv文件,因为我希望它们与机器上安装的Excel版本兼容,我需要从C++程序中获取小数点分隔符。我的机器有法语版的Windows/Excel,所以小数点分隔符是','。intmain(){std::cout>(std::cout.getloc()).decimal_point();return0;}输出.,这不是预期的我尝试使用WIN32API:intmain(){TCHARszSep[8];GetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SDECIMAL,szSep,8);std::cout输出,,这是预

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++ - Eclipse[HELIOS] CDT : Autocomplete, STL 不能与 Eclipse 一起工作..帮助!

我是一个java用户,但想玩弄CPP,所以我为eclipse[HELIOS]安装了CDT插件。我在尝试正确配置它时遇到了一些问题,想知道是否有人可以帮助我。这是我们可以使用的简短代码:#include"Base.h"//Theselinesgiveerror=>Unresolvedinclusion:#include#includeusingnamespacestd;voidBase::ininitalizeVector(){for(inti=0;i1]自动完成功能不适用于STL。2]在我点击点“。”后,我无法获得支持的方法列表等。3]包含不起作用:#include4]我认为使用命名空

c++ - 与 STL vector 对齐分配

我希望我的vector存储对齐(比如16字节边界),所以我将这个分配器作为memalign()的包装器,我想知道这是否是正确的方法分配用于STLvector的对齐内存。templateclassAlignedAllocator{public:...pointerallocate(size_typesize,const_pointer*hint=0){return(pointer)memalign(Alignment,size*sizeof(T));};voiddeallocate(pointerp,size_typesize){free(p);};...}如果没有,是否有适用于STL容

c++ - HDF5 :Create a Dataset with string

我正在使用HDF5API,我正在尝试创建一个具有可变长度字符串的数据集。结构是structdataX{std::stringdata;};我使用的是具有静态硬编码大小的char[256]。但我希望它是动态的,所以在阅读HDF5文档后,我找到了H5T_VARIABLE并按如下方式使用它,但它仍然失败。H5Dcreate返回负值(表示错误)。hid_tmem_type;mem_type=H5Tcopy(H5T_C_S1);H5Tset_size(mem_type,H5T_VARIABLE);/*Createthememorydatatype.*/if((mem_type_id=H5Tcre

c++ - 如何将 STL 映射保存到文件 C++

我正在尝试使用map将数据安全地保存到文件中,但我不知道如何操作。我想将学生的姓名和年龄保存到文件中,然后当我查找学生的姓名时,它应该显示他们的年龄。#include#include#include#includeusingnamespacestd;classstudent{private:mapmap;public:voidstudents(stringname,intage);};voidstudents(stringname,intage){if(age>name;cout>age;//codetosavemaptofilefilemap.close();}

c++ - 具有不同包含类型的 STL 容器?

假设我有不同类型的结构组件。也许我有TransformComponent和RigidBodyComponent现在,这就是问题所在:我想要类似std::map的东西将组件类型和id映射到组件的位置。ids是将组件链接在一起的东西。我应该为此使用哪种容器?我不能使用std::map>自类型T取决于您用来为第一张map编制索引的类型索引。 最佳答案 您的用例听起来像是多态性的典型使用。您应该知道,任何在单个容器中存储“非同质”类型的尝试都会带来多态性的性能损失。至于您是使用C++提供的“开箱即用”多态性还是寻求自定义解决方案-这完全取决

c++ - 高效的 const char* 连接和输出到 std::string

这个问题在这里已经有了答案:Mostoptimizedwayofconcatenationinstrings(9个回答)关闭9年前。首先要考虑的是,将存储在输出字符串中的总数据量几乎肯定很小,因此我怀疑其中任何一个都会对性能产生显着影响。我的主要目标是找到一种连接一系列大小未知的constchar*的方法,这种方法看起来并不糟糕,同时还要牢记效率。以下是我的搜索结果:方法一:std::stringstr=std::string(array1)+array2+array3;方法二:std::stringstr(array1);str+=array2;str+=array3;我决定使用第一