gpt4 book ai didi

c++ - 可以在不改变其状态的情况下遍历 stringstream 中的字符吗?

转载 作者:行者123 更新时间:2023-11-30 01:09:19 25 4
gpt4 key购买 nike

给定一个 stringstream ss,是否有一种简洁的方法可以在不改变其状态的情况下遍历当前在其中的字符?

当然,我可以 stringstream ss2(ss.str()) 然后从 ss2 中获取字符,但我希望有一种方法可以避免创建中间字符串,因为我的 ss 可能包含数百万个字符。


背景:我将一些数据编码为ss,并希望在将其写入磁盘文件之前附加一个CRC。它是为了计算CRC,我想通过ss来迭代。道德上的做法可能是子类化 stringstream 并动态维护 CRC,但这对我的直接目的来说太麻烦了。

最佳答案

std::stringstream 使用 std::stringbuf作为它的流缓冲区。 std::stringbuf 是可搜索的,就像普通文件一样。

您可以随心所欲地遍历缓冲字符串,然后返回到缓冲区的开头,或字符串内的某个其他位置,然后将时钟倒回到原来的位置。

关于c++ - 可以在不改变其状态的情况下遍历 stringstream 中的字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564599/

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