gpt4 book ai didi

c++ - std::basic_string 的使用

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:29 33 4
gpt4 key购买 nike

basic_string 类显然被设计为通用容器,因为除了 c_str() 函数外,我在其规范中找不到任何特定于文本的函数。出于好奇,除了存储人类可读的字符数据之外,您是否曾将 std::basic_string 容器类用于其他用途?

我问这个问题的原因是,人们常常不得不在通用或具体之间做出选择。设计者选择将 std::basic_string 类设为通用类,但我怀疑它是否曾经以这种方式使用过。

最佳答案

它被设计为一个字符串类(因此,例如 length() 和所有那些查找函数),但是在将 STL 引入标准库之后,它也被装备为一个 STL 容器(因此 size() 和迭代器,<algorithm> 使所有查找函数变得多余)。

不过,它的主要目的是存储字符。使用除 POD 之外的任何东西都不能保证工作(并且不起作用,例如,当使用 Dinkumware 的标准库时)。此外,必要的 std::char_traits除了 char 之外,不需要其他任何东西可用和 wchar_t (尽管许多实现都带有基本模板的合理实现)。

在最初的标准中,类不需要将其数据存储在一 block 连续的内存中,但这在 C++03 中有所改变。

简而言之,它主要用作字符容器(又名“字符串”),其中“字符”具有相当广泛的定义。

我使用它的“最狂野”是通过使用不同的字符类型来存储不同编码的字符串。这样,不同编码的字符串即使使用相同的字符大小(ASCII 和 UTF-8)也是不兼容的,例如,赋值会导致编译时错误。

关于c++ - std::basic_string 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1310853/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com