如果代码如下所示,
void func(std::string str)
{
...
}
void main()
{
std::string p1 = "abcd";
char p2[SOME_LENGTH] = "abcd";
func(p1); // (1)
func(p2); // (2)
}
(1)和(2)之间哪种方法有效?
它们同样有效/无效。两者都涉及复制字符串并将副本用作参数“ str”的值。更好的方法是将func声明为
void func(const std::string &str) {
}
这样可以避免复制字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句