boost::string_ref使用详解

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

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

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

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

#include <assert.h>
#include <iostream>
#include <boost/utility/string_ref.hpp>

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 == str.substr(0, 4));
	//通过赋值操作符,创建
	boost::string_ref sr4, sr5;
	sr4 = ch;
	sr5 = str;
	assert(sr4 == sr5);

	//string_ref相关接口使用

	//判断为空
	if (sr1.empty()) std::cout <&l
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值