- 主题:不是很懂string_view的点
如果仅仅只是为了代码安全性和传参数的性能的话
void f(std::string_view s)
和
void f(const std::string& s)
应该没什么区别吧,那为和还要用string_view?
--
FROM 122.224.174.*
你要传s的一个子串怎么办?
【 在 ziqin 的大作中提到: 】
:
: 如果仅仅只是为了代码安全性和传参数的性能的话
:
: void f(std::string_view s)
: 和
#发自zSMTH@钛星
--
FROM 114.255.33.*
ok,那第二个问题是,我该用
f( std::string_view s)
还是
f( const std::string_view& s )
我有强迫症,毕竟如果用第一个,会多一次copy或者move,string_view的开销怎么样?
【 在 ble 的大作中提到: 】
: 你要传s的一个子串怎么办?
:
: #发自zSMTH@钛星
--
FROM 122.224.174.*
第一个,string_view和span都是一个指针加一个长度这种结构,传值就好了
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: ok,那第二个问题是,我该用
: f( std::string_view s)
: 还是
: ...................
--
FROM 125.123.86.*
【 在 ziqin 的大作中提到: 】
: ok,那第二个问题是,我该用
: f( std::string_view s)
: 还是
: ...................
你随便用哪个呀
string_view 只有一个指向字符串地址的指针和大小
你拷贝也只是拷贝这几个字节
--
FROM 211.249.40.*
不太理解,这种有必要加一个晦涩的类吗,又不十分安全,在这上面浪费精力还不如把代码优化一下。
【 在 lcoudy 的大作中提到: 】
: 第一个,string_view和span都是一个指针加一个长度这种结构,传值就好了
--
FROM 221.220.252.*
没有这个前到处传char*, 更不安全,现在好歹传pair<char*, size_t>
【 在 toutouqi 的大作中提到: 】
: 不太理解,这种有必要加一个晦涩的类吗,又不十分安全,在这上面浪费精力还不如把代码优化一下。
--
FROM 222.129.51.*
第一个。编译器会用寄存器传值。第二个的话还要多一次内存访问去找到之前string的地址。
【 在 ziqin 的大作中提到: 】
: ok,那第二个问题是,我该用
: f( std::string_view s)
: 还是
: ...................
--
FROM 73.71.159.*
用第一个
string_view本身的拷贝开销小于解引用。
【 在 ziqin 的大作中提到: 】
: ok,那第二个问题是,我该用
: f( std::string_view s)
: 还是
: ...................
--
FROM 76.126.252.*
非常有必要
【 在 toutouqi 的大作中提到: 】
: 不太理解,这种有必要加一个晦涩的类吗,又不十分安全,在这上面浪费精力还不如把代码优化一下。
--
FROM 76.126.252.*