boost::string_ref使用详解

1、string_ref不分配内存,不对字符串进行拷贝,通过其内部的两个成员变量ptr_和len_标记字符串的起始位置和字符串的长度,实现了字符串的表示,所以效率很高。

2、一般情况下,我们使用string_ref只是去观察字符串,而不是去修改字符串。

3、在使用string_ref期间,我们应该保证被引用的原始字符串对象可用,不能销毁。如果我们确实需要持有字符串,可以调用成员函数to_string()获得原始字符串的一个拷贝来保证安全。

4、string_ref相关接口的使用方法:

#include 
#include 
#include 

int main()
{
	const char* ch = "My Name Is zzc";
	std::string str(ch);                //c++标准库字符串,有拷贝成本

	//构造
	boost::string_ref sr1(ch);
	boost::string_ref sr2(str);
	assert(sr1 == sr2 && sr1 == ch && sr1 == str);
	//截取前4个字符构造
	boost::string_ref sr3(ch, 4);
	assert(sr3 =

你可能感兴趣的:(Boost库,boost,string_ref)