c++11 标准模板(STL)(std::basic_stringbuf)(一)
定义于头文件 <sstream>
template< class CharT, |
std::basic_stringbuf
是关联字符序列为内存常驻的任意字符序列的 std::basic_streambuf 。能从 std::basic_string 的实例初始化它,或将它做成该类的实例。
std::basic_stringbuf
的典型实现保有一个 std::basic_string 类型对象,或等价的可伸缩序列容器作为数据成员,并将它同时用作受控制字符序列(为 std::basic_streambuf 的六个指针所指向的数组)和关联字符序列(所有输入操作的字符源和输出操作的目标)。
另外,典型的实现保有一个 std::ios_base::openmode 类型的数据成员,以指示流的状态(只读、只写、读写、尾端写等)。
若 overflow() 使用过分配策略,则可存储另外的高水位指针,以跟踪最后初始化的字符。 | (C++11 起) |
亦提供二个对常用字符类型的特化:
类型 | 定义 |
stringbuf | basic_stringbuf<char> |
wstringbuf | basic_stringbuf<wchar_t> |
成员类型
成员类型 | 定义 |
char_type | CharT |
traits_type | Traits ;若 Traits::char_type 不是 CharT 则程序为病式。 |
int_type | Traits::int_type |
pos_type | Traits::pos_type |
off_type | Traits::off_type |
allocator_type | Allocator (C++11 起) |
成员函数
公开成员函数 | |
(构造函数) | 构造一个 basic_stringbuf 对象 (公开成员函数) |
operator= (C++11) | 赋值 basic_stringbuf 对象 (公开成员函数) |
swap (C++11) | 交换二个 basic_stringbuf 对象 (公开成员函数) |
(析构函数) [虚] (隐式声明) | 析构 basic_stringbuf 对象和其所保有的 string (虚公开成员函数) |
str | 替换或获得关联字符串的副本 (公开成员函数) |
受保护成员函数 | |
underflow [虚] | 返回输入序列中可用的下一字符 (虚受保护成员函数) |
pbackfail [虚] | 回放字符到输出序列中 (虚受保护成员函数) |
overflow [虚] | 后附字符到输出序列 (虚受保护成员函数) |
setbuf [虚] | 试图以数组替换受控字符序列 (虚受保护成员函数) |
seekoff [虚] | 用相对寻址,重定位输入序列、输出序列或两者中的下一位置指针 (虚受保护成员函数) |
seekpos [虚] | 用绝对寻址,重定位输入序列、输出序列或两者中的下一位置指针 (虚受保护成员函数) |
非成员函数
std::swap(std::basic_stringbuf) (C++11) | 特化 std::swap 算法 (函数模板) |
继承自 std::basic_streambuf
成员类型
成员类型 | 定义 |
char_type | CharT |
traits_type | Traits ;若 Traits::char_type 不是 CharT 则程序为病式。 |
int_type | Traits::int_type |
pos_type | Traits::pos_type |
off_type | Traits::off_type |
成员函数
(析构函数) [虚] | 析构 basic_streambuf 对象 ( std::basic_streambuf<CharT,Traits> 的虚公开成员函数) |
本地环境 | |
pubimbue | 调用 imbue() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
getloc | 获得相关本地环境的副本 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
寻位 | |
pubsetbuf | 调用 setbuf() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
pubseekoff | 调用 seekoff() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
pubseekpos | 调用 seekpos() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
pubsync | 调用 sync() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
获取区 | |
in_avail | 获得获取区中立即可用的字符数 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
snextc | 令输入序列前进,读取一个字符而不再次前进 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
sbumpc | 从输入序列读取一个字符并令序列前进 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
stossc (C++98 中弃用)(C++17 中移除) | 令输入序列前进,如同通过调用 sbumpc() 并舍弃结果 (公开成员函数) |
sgetc | 从输入序列读取一个字符,而不令序列前进 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
sgetn | 调用 xsgetn() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
放置区 | |
sputc | 写一个字符到放置区域,并令 next 指针前进 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
sputn | 调用 xsputn() ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
回放 | |
sputbackc | 在输入序列中放回一个字符 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
sungetc | 回移一位输出序列中的下一位置指针 ( std::basic_streambuf<CharT,Traits> 的公开成员函数) |
受保护成员函数
(构造函数) | 构造 basic_streambuf 对象 (受保护成员函数) |
operator= (C++11) | 替换 basic_streambuf 对象 (受保护成员函数) |
swap (C++11) | 交换二个 basic_streambuf 对象 (受保护成员函数) |
本地环境 | |
imbue [虚] | 更改关联的本地环境 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
寻位 | |
setbuf [虚] | 若容许则以用户定义数组替换缓冲区 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
seekoff [虚] | 用相对寻址重定位输入序列、输出序列或两者中的下一位置指针 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
seekpos [虚] | 用绝对寻址重定位输入序列、输出序列或两者中的下一位置指针 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
sync [虚] | 将缓冲与关联的字符序列同步 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
获取区 | |
showmanyc [虚] | 若已知,则获得关联输入序列中可用于输入的字符数 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
underflow [虚] | 从关联输入序列读取字符到获取区 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
uflow [虚] | 从输入序列读取字符到获取区,并令下一位置指针前进 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
xsgetn [虚] | 从输入序列读取多个字符 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
ebackgptregptr | 返回指向获取区起始、当前字符和末尾的指针 (受保护成员函数) |
gbump | 令输出序列中的下一位置指针前进 (受保护成员函数) |
setg | 重定位输出序列的起始、下一位置和终止指针 (受保护成员函数) |
放置区 | |
xsputn [虚] | 将多个字符写到输出序列 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
overflow [虚] | 从放置区写入字符到关联的输出序列 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
pbasepptrepptr | 返回指向放置区的起始、当前字符和末尾的指针 (受保护成员函数) |
pbump | 令输出序列中的下一位置指针前进 (受保护成员函数) |
setp | 重定位输出序列的起始、下一位置和终止指针 (受保护成员函数) |
回放 | |
pbackfail [虚] | 将字符放回输入序列,可能修改输入序列 ( std::basic_streambuf<CharT,Traits> 的虚受保护成员函数) |
相关文章:
c++11 标准模板(STL)(std::basic_stringbuf)(一)
定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::allocator<CharT> > class basic_stringbuf : public std::basic_streambuf<CharT, Traits> std::basic_stringbuf…...
flutter开发实战-WidgetsBinding监听页面前台后台退出状态
flutter开发实战-WidgetsBinding监听页面前台后台退出状态 在开发过程中,经常监听页面前台后台退出状态,这里用到了WidgetsBinding 一、WidgetsBinding是什么? WidgetsBinding是Flutter中最重要的Binding之一,它提供了与Widget…...

父进程等待子进程退出 / 僵尸进程孤儿进程
Q:父进程为什么要等待子进程退出? A:回顾创建子进程的目的,就是让子进程去处理一些事情,那么“事情干完了没有”这件事,父进程需要知道并收集子进程的退出状态。子进程的退出状态如果不被收集,…...

【LeetCode 75】第二十六题(394)字符串解码
目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 给我们字符串,让我们解码,那么该怎么解码呢,被括号【】包裹起来的字符串需要扩展成括号左边第…...

UNIX网络编程——TCP协议API 基础demo服务器代码
目录 一.TCP客户端API 1.创建套接字 2.connect连接服务器编辑 3.send发送信息 4.recv接受信息 5.close 二.TCP服务器API 1.socket创建tcp套接字(监听套接字) 2.bind给服务器套接字绑定port,ip地址信息 3.listen监听并创建连接队列 4.accept提取客户端的连接 5.send,r…...

[保研/考研机试] KY163 素数判定 哈尔滨工业大学复试上机题 C++实现
题目链接: 素数判定https://www.nowcoder.com/share/jump/437195121691718831561 描述 给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。 输入描述: 测试数据有多组,每组输入一个数…...
iOS_crash文件的获取及符号化(解析)
文章目录 1. 使用 symbolicatecrash 解析 .ips 文件:2. 使用 CrashSymbolicator.py 解析 ips 文件3. 使用 atos 解析 crash 文件4. Helps4.1 .ips 文件获取4.2 .crash 文件获取4.3 获取 .dSYM 和 .app 文件4.4 使用 dwarfdump 查询 uuid 5. Tips6. 总结 1. 使用 sym…...

STM32定时器TIM控制
一、CubeMX的设置 1、新建工程,进行基本配置 2、配置定时器TIM2 1)定时器计算公式:(以下两条公式相同) Tout ((ARR1) * PSC1)) / Tclk TimeOut ((Prescaler 1) * (Period 1)) / TimeClockFren Tout TimeOut&…...

网络请求中,token和cookie有什么区别
HTTP无状态,每次请求都要携带cookie,以帮助识别用户身份; 服务端也可以向客户端set-cookie,cookie大小限制为4kb; cookie默认有跨域限制,不跨域共享和传递,例如: 现代浏览器开始禁…...
Javaweb_xml
文章目录 1.xml是什么?2.xml的用途 1.xml是什么? xml 是可扩展的标记性语言 2.xml的用途 1、用来保存数据,而且这些数据具有自我描述性 2、它还可以做为项目或者模块的配置文件 3、还可以做为网络传输数据的格式(现在 JSON 为主…...

http相关知识点
文章目录 长链接http周边会话保持方案1方案2 基本工具postmanFiddlerFiddler的原理 长链接 一张网页实际上可能会有多种元素组成,这也就说明了网页需要多次的http请求。可由于http是基于TCP的,而TCP创建链接是有代价的,因此频繁的创建链接会…...
【SA8295P 源码分析】68 - Android 侧用户层 输入子系统获取 /dev/input/event0 节点数据 代码流程分析
【SA8295P 源码分析】68 - Android 侧用户层 输入子系统获取 /dev/input/event0 节点数据 代码流程分析 一、EventHub.cpp 监听 /dev/input/event0 节点流程二、EventHub.cpp 读取 /dev/input/event0 节点数据流程系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总…...
走出迷宫(多组输入bfs)
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 小明现在在玩一个游戏,游戏来到了教学关卡,迷宫是一个N*M的矩阵。 小明的起点在地图中用“S”来表示,终点用“E”来表示,障碍物用“#…...
Linux系统编程-终端、进程组、会话
一、终端的概念 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端(Controlling Terminal),进程中,控制终端是保存在PCB中的信息,而fork会复制PCB中的信息…...
Linux部分文件操作记录
问题描述 多级文件夹下,有多个同名文件,以及其他无关文件,为了减轻体量,遍历目录,只保留对应文件 首先open terminal here find . -type f \( ! -name algo_imu.bin -a ! -name post_gnss_only_error.log -a ! -name…...

Android系统-进程-Binder2-Java层
引言: 对于Android系统,一般是从java层到native层,再到kernel驱动层,形成一个完整的软件架构。Android系统中的Binder IPC通信机制的整体架构,从java层到底层驱动层是怎么样的一个架构和原理的呢? 概念与…...

体渲染原理及WebGL实现【Volume Rendering】
体渲染(Volume Rendering)是NeRF神经场辐射AI模型的基础,与传统渲染使用三角形来显示 3D 图形不同,体渲染使用其他方法,例如体积光线投射 (Volume Ray Casting)。本文介绍体渲染的原理并提供Three.js实现代码ÿ…...

VUE3组件
组件基础 {#components-basics} 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构: 这和我们嵌套 HTML 元素的方式类似,Vue 实现了自己的组件…...

【iOS】autoreleasepool
来说一下最近在了解的autoreleasepool吧,我们可能平时书写过许多脑残代码,其有很多的缺陷但是我们可能当时学的比较浅就也不太了解,就像下面这样的: for (int i 0; i < 1000000; i) {NSNumber *num [NSNumber numberWithInt…...

0基础学习VR全景平台篇 第80篇:Insta360 影石如何直播推流
一、下载Insta360 Pro APP 1、手机进入Insta360官网Insta360 | Action Cameras | 360 Cameras | VR Cameras,页面往下滑动到Insta360 Pro2相机处,点击相机图片进入详情页。详情页继续下滑到到手机APP处,根据自己的手机系统选择对应的客户端进…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...