- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
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/
ninja (版本:1.9.0)输出: mergetree_test.cpp:(.text+0x19f): undefined reference to `DB::executeQuery(std::
嘿,我正在制作“制作你自己的冒险游戏!”现在除了必须通过漏洞游戏之外,我想制作一个作弊代码系统,现在我试图声明一个字符串女巫等于超过 6 个单词我不明白问题是什么我只用了两个单词并且没有错误但是当我用
在 MacOS X 10.10 CLang 中: typedef basic_string, allocator > string; typedef basic_string, allocator >
来自以下内容 Can I turn unsigned char into char and vice versa? 似乎转换 basic_string到 basic_string (即 std::st
我这样定义一个字符串对象: string test; 我想知道STL是怎么实现string的,发现string是basic_string,像这样: typedef basic_string st
好吧,我有这个代码: #include #include "Stack.h" #include using namespace std; int main(int argc, char* argv
当我编译以下 MWE 时出现上述错误在 GCC 上 #include void frobnigate( const std::string& str ) { std::string::con
我正在尝试编译 QtWebApp使用 Qt5.5.1 到最新的 RPI4-Raspbian Buster,我遇到了莫名其妙的 GLIBCXX 未解析符号 什么有效:QtWebApp 使用在 Raspb
尽管以下代码可以在 Linux 上编译,但我无法在 Windows 上编译它: boost::filesystem::path defaultSaveFilePath( base_directory
我在函数的代码行下面运行 string internalPath(os.str()); m_tags.insert(make_pair(internalPath, tagConfig )); e
如何把所有的\都改成\\? 我想创建地址来处理文件: #include #include #include using namespace std; int main() { strin
我目前正在为一个类项目工作,其中我必须在 C++ 中实现布谷鸟哈希。问题是,C++ 和我从来都不是 friend ,而且我认为我们永远不会... 具体的问题是,我无法在已经存在的对象上设置指针。当我这
你能告诉我这段代码有什么问题吗?关于如何修复的任何想法? JNIEXPORT jstring JNICALL Java_COM_DEMO_TEST_SEND (JNIEnv *env, jclass
所以我是编程新手,这是大学工程类(class)的一部分。我决定找点乐子,在课外写点东西。我正在尝试用 C++ 编写一个程序,允许用户输入 3 个矩形棱柱的长度、宽度和高度值,程序将使用这 3 个值来计
我将重新发布我今天早些时候提交的问题,但现在我引用一个具体示例来回应我收到的反馈。可以在here中找到原始问题(请注意,这不是家庭作业): 我只是试图确定C++是否使不可能对basic_string对
当我尝试编译以下代码时: #include using namespace std; typedef std::basic_string foostring; foostring foo = "fo
我正在评估使用 basic_string 模板来实现一个类似字符串的对象,以便使用外部内存管理器进行分配。该内存管理器保持已分配内存的最大大小和当前大小(允许当前大小增加到最大大小)。为了避免冗余,我
我有一个函数,ModuleManager::tick(),代码如下: void ModuleManager::tick() { auto now = std::chrono::steady_clock
我正在完成自定义字符串类的开发。当然,它的目的是等同于 basic_string,并为其预期目的定制了内部存储。我正在寻找一种测试工具,它可以按照 C++ 标准进行测试。我已经看到 libstdc++
在浏览 C++14/C++1y (n3690) 草案时,我注意到在第 21.7 节中引入了 basic_string 文字后缀: inline namespace literals { inline
我是一名优秀的程序员,十分优秀!