- 主题:关于现有代码 string_view 改造,下面的场景用法正确吗?
谁告诉你string都有COW?不要误导
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 关于现有代码 string_view 改造,下面的场景用法正确吗?
: 发信站: 水木社区 (Mon Aug 31 09:20:34 2020), 站内
:
: string_view传参没问题,事实上string都有cow,所以直接传值也没什么大问题。
:
:
:
: 【 在 speedboy2998 的大作中提到: 】
: :
: : 下面这个 TestSV类,前面两个 string 版本的成员函数是不是可以完全被后面两个取代?
: :
: : class TestSV { private: void set_name(const std::string& name) { _name = name; } const std::string& get_name() { return _name; } void set_name_sv(std::string_view name_sv) { _name = name_sv; } std::string_view get_name_sv() { return std::string_view(_name); } private: std::string _name; };
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 124.64.18.*]
--
FROM 76.126.252.*
嗯,只有小串优化,没有copy-on-write优化
【 在 here080 () 的大作中提到: 】
: 谁告诉你string都有COW?不要误导
: 【 在 hyperLee (老李) 的大作中提到: 】
--
FROM 124.217.188.*
仔细看了一下, std::string确实没有, 记错了.
这么儿来说,stringstream要获取它的data, 根本就没可能了. 唯一的出口str()还是 copy的.
【 在 here080 (hero080) 的大作中提到: 】
谁告诉你string都有COW?不要误导
A
--
FROM 120.244.224.*
C++20新增加了:
* view()方法,返回一个string_view.
* str()方法可以移动内容返回了。
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 关于现有代码 string_view 改造,下面的场景用法正确吗?
: 发信站: 水木社区 (Tue Sep 1 06:28:16 2020), 站内
:
: 仔细看了一下, std::string确实没有, 记错了.
:
: 这么儿来说,stringstream要获取它的data, 根本就没可能了. 唯一的出口str()还是 copy的.
:
: 【 在 here080 (hero080) 的大作中提到: 】
: 谁告诉你string都有COW?不要误导
:
: A
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 120.244.224.*]
--
FROM 76.126.252.*
只能说艹, 是个人都想要获取底层数据首指针和长度,结果到现在才出.
【 在 here080 (hero080) 的大作中提到: 】
: C++20新增加了:
: * view()方法,返回一个string_view.
: * str()方法可以移动内容返回了。
: ...................
--
FROM 120.244.224.*
不过QBuffer已经用的很爽了, 这才是工业级的库.
【 在 here080 (hero080) 的大作中提到: 】
: C++20新增加了:
: * view()方法,返回一个string_view.
: * str()方法可以移动内容返回了。
: ...................
--
FROM 120.244.224.*
我猜stringstream实现上为了效率不要求连续内存空间吧?
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 关于现有代码 string_view 改造,下面的场景用法正确吗?
: 发信站: 水木社区 (Tue Sep 1 06:34:32 2020), 站内
:
: 只能说艹, 是个人都想要获取底层数据首指针和长度,结果到现在才出.
:
: 【 在 here080 (hero080) 的大作中提到: 】
: : C++20新增加了:
: : * view()方法,返回一个string_view.
: : * str()方法可以移动内容返回了。
: : ...................
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 120.244.224.*]
--
FROM 76.126.252.*
std 库展望了好多未来, 结果导致好多必须的接口活活憋死.
如果是允许分段存储, 那应该有 nchunk(), chunk_data(i), 然而也没有.
【 在 here080 (hero080) 的大作中提到: 】
: 我猜stringstream实现上为了效率不要求连续内存空间吧?
--
FROM 120.244.224.*
搞得我QtCore和std 夹着用.
【 在 hyperLee (老李) 的大作中提到: 】
: std 库展望了好多未来, 结果导致好多必须的接口活活憋死.
: 如果是允许分段存储, 那应该有 nchunk(), chunk_data(i), 然而也没有.
--
FROM 120.244.224.*
不要求,就是说怎么实现都可以。留下了各种可能性,所以接口就不能定义这些。
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 关于现有代码 string_view 改造,下面的场景用法正确吗?
: 发信站: 水木社区 (Tue Sep 1 06:37:55 2020), 站内
:
: std 库展望了好多未来, 结果导致好多必须的接口活活憋死.
:
: 如果是允许分段存储, 那应该有 nchunk(), chunk_data(i), 然而也没有.
:
:
: 【 在 here080 (hero080) 的大作中提到: 】
: : 我猜stringstream实现上为了效率不要求连续内存空间吧?
:
:
: --
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 120.244.224.*]
--
FROM 76.126.252.*