stdstring相关内容

MFC:std :: string与CString?

在MFC中使用C ++.来自C#背景,我通常只将字符串用于所有字符串.我将它们用于类成员,方法参数和方法返回值. 现在在C ++中,我有std :: string,CString,char *,LPCTSTR等.在设计数据成员,方法参数和方法返回值时,应使用哪种类型?易用性很重要,CString似乎提供了这一点,但是我的直觉是对可移植标准的,尽管可移植性在我的优先级列表中(现在)还很低.另外 ..
发布时间:2020-05-09 19:24:19 C/C++开发

在std :: string中使用自定义分配器重新使用已分配的char缓冲区

我需要在std :: string对象中使用已经分配的char *缓冲区(带有字符串内容).经过一番研究,我发现这几乎是不可能的,并且std :: string总是具有自己的数据私有副本.我能想到的唯一剩下的方法是使用自定义分配器,该分配器将返回已分配的char缓冲区的地址.为此,std :: string应该仅使用分配器分配内存来保存其字符串数据,而别无其他.是这样吗 解决方案 std: ..
发布时间:2020-05-08 22:03:05 C/C++开发

保留临时的std :: string并返回c_str()以防止内存泄漏

我发现自己在下面使用这种类型的代码来防止内存泄漏,在性能,安全性,样式或...方面有什么问题吗? 这个想法是,如果我需要返回一个编辑过的字符串(用c字符串而不是std :: string),我会使用一个临时的std :: string作为助手,并将其设置为我想要的返回值并保持那个暂时的生命. 下次我调用该函数时,它将临时值重新设置为我想要的新值.而且由于我使用返回的c字符串的方式,所以 ..
发布时间:2020-05-08 21:19:14 C/C++开发

如何使用glibc的字符串实现在堆栈上分配std :: string?

int main(void) { std::string foo("foo"); } 我的理解是,上面的代码使用默认的分配器来调用new.因此,即使std :: string foo分配在堆栈上,foo内部的内部缓冲区也分配在堆上. 如何创建一个完全在堆栈上分配的字符串? 解决方案 我最近想自己做一下,发现下面的代码可以说明问题: Chronium的stack_con ..
发布时间:2020-05-08 19:01:56 C/C++开发

文字中的静态std :: string对象的宏

假设我需要调用函数foo,该函数需要在代码中的很多地方获取const std::string引用: int foo(const std::string&); .. foo("bar"); .. foo("baz"); 使用这样的字符串文字调用函数将创建临时的std::string对象,每次都复制文字. 除非我弄错了,否则编译器不会通过为每个文字创建一个静态的std::string对 ..
发布时间:2020-05-05 09:00:27 C/C++开发

如何连接std :: string和int?

我认为这很简单,但它会带来一些困难。如果我有 std :: string name =“John”; int age = 21; 如何组合它们以获得单个字符串“John21”? 解决方案 按字母顺序排列: std :: string name =“John”; int age = 21; std :: string result; / ..
发布时间:2018-08-06 19:32:14 C/C++开发

程序入口点_ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1Ev不能位于动态链接库中

试图使用std :: string有很大的困难。该程序编译绝对好,但是当我运行该程序时,我收到此错误:错误 我在Google上到处寻找,并没有发现如何解决这个问题。我也尝试写我的代码不同,看看是否会告诉我什么。 std :: string yourName; std :: cout>你的名字; std :: cout ..
发布时间:2018-04-20 17:05:47 C/C++开发

C ++字符串:UTF-8或16位编码?

我仍然试图决定我的(家庭)项目是否应该使用 UTF-8 字符串(在必要时使用附加的UTF-8特定功能的std :: string实现)或一些16位字符串(实现为std :: wstring)。该项目是一种编程语言和环境(如VB,它是两者的组合)。 有一些愿望/约束: 如果可以在有限的硬件上运行,例如内存有限的计算机,这将是很酷的。 我希望代码运行在Windows,Mac和(如果资源允 ..
发布时间:2017-08-16 22:27:54 C/C++开发

C ++程序总是崩溃执行std :: string assign时

我一直在试图调试崩溃在我的应用程序崩溃(即断言 * glibc检测到* free():无效指针:0x000000000070f0c0 ***) m试图做一个简单的分配到一个字符串。注意,我在一个linux系统上编译gcc 4.2.4,优化级别设置为-O2。使用-O0时,应用程序不再崩溃。 例如 std :: string abc; abc =“testString”; ..
发布时间:2017-01-13 11:41:18 C/C++开发

C ++:char指针指向std :: string转换是否复制内容?

使用构造函数将 char * 转换为 std :: string 时: char * ps =“Hello”; std :: string str(ps); 我知道std容器在被要求存储时往往会复制值。 是复制整个字符串还是仅指针? 如果后来我做 str =“Bye”会把ps改成指向“Bye”吗? c>对象将分配内部缓冲区并将复制 ps指向的字符串。对该字 ..
发布时间:2016-12-30 16:55:31 C/C++开发

C ++ / CLI字符串转换

我发现这个很好的代码,将字符串转换为 System:String ^ 如: System :: String ^ rtn = gcnew String(move.c_str()); //'move'这里是字符串 我将rtn传递回C#程序。无论如何,在这个代码存在的函数内部,我传递一个 System :: String ^ 。我还发现一些代码使用以下代码将 System:St ..
发布时间:2016-11-06 12:24:33 C/C++