编译器有 small string optimization,小字符串可以在栈上分配内存,以及有 copy elision,拷贝开销也不一定存在。反而是返回指针,可能不得不在堆上分配内存。你所想象的效率提升可能根本不存在,反而是效率下降。没做 profile 就没有发言权。过早的优化是万恶之源。
【 在 here080 (hero080) 的大作中提到: 】
: 很大,因为拷贝很多时候意味着在堆上新分配空间。
: 以std::string为例。你拷贝一个不仅仅只是拷贝字节,而是要新开一块内存空间。
: 这个是上千倍耗时的。
: ...................
--
FROM 118.112.200.*