任何人都可以解释一下我是否需要 & 在第一个代码片段中



在下面的代码片段中,我注意到即使我们没有操作字符串,也使用了 & 符号。谁能告诉我为什么需要它?

bool compare(string &s1,string &s2) 
{ 
return s1.size() < s2.size(); 
} 

片段 2:这段代码会起作用吗?

bool compare(string s1,string s2) 
{ 
return s1.size() < s2.size(); 
} 

需要&符号(引用(,因为这样程序将只使用对原始字符串的引用。如果不使用引用,则程序将复制字符串,因此程序将

  • 慢一点
  • 内存效率较低

常量引用(const string&(更好,因为它会使其成为只读的,因此您可以传递字符串文字。喜欢compare("abc", "foo bar").

是的,您的第二个代码段可以工作,但不建议这样做。

最新更新