您的位置:首页 > 编程语言 > C语言/C++

关于C++ std::string如何增加数据

2016-08-05 12:33 357 查看
C++的
std::string
,和C的
char*
不一样,
string
是个
char*
size
,所以
string
里面能存任何
char
,包括
NULL
(char)0
都可以存里面,
string
并不依靠
NULL
(char)0
指定
size


string
能用做
payload
,譬如
rtmp
video
audio
payload
,也就是音频和视频数据,是可以直接用
string
存储的,而且能避免内存拷贝,不用自己做引用计数。可惜做
srs
时忘记了这一点,自己实现了引用计数,实际上是没有必要的。

string
可以将内存块加进来,譬如:

string s;
s.append(p0, 8); // 新增8字节内容
s.append(p1, 64); // 新增64字节内容
s.length(); // 这时候s长度是72字节了


string
也可以直接加字符,譬如:

string s;
s += 'h';
s += 'e';
s += 'l';
s += 'l';
s += 'o';
s.data(); // 这个时候返回的是char*,"hello"


string
中取数据有三个常用的方式:

s.at(index): char
,返回指定位置的char字符。

s.c_str(): const char*
,返回C风格的char*,以NULL结尾。

s.data(): char*
,返回数据的指针。

string
在协议解析中做cache,还是很有用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐