如果代码如下所示,
void func(std::string str)
{
...
}
void main()
{
std::string p1 = "abcd";
char p2[SOME_LENGTH] = "abcd";
func(p1); // (1)
func(p2); // (2)
}
哪种方式在(1)和(2)之间有效?
答案 0 :(得分:0)
它们同样有效/低效。两者都涉及复制字符串并使用副本作为参数' str的值。更好的方法是将func声明为
void func(const std::string &str) {
}
这可以避免复制字符串。