在尝试从这里理解 Rvalue 引用时,我无法理解两件事
- 如果向量中有 N 个字符串,则每个副本可能需要多达 N+1 个内存分配,并且 [...]
'N+1' 中的 +1 是什么?
2.作者是如何突然得出下面的指导方针的
指南:不要复制你的函数参数。相反,按值传递它们并让编译器进行复制。
我错过了什么吗?
在尝试从这里理解 Rvalue 引用时,我无法理解两件事
- 如果向量中有 N 个字符串,则每个副本可能需要多达 N+1 个内存分配,并且 [...]
'N+1' 中的 +1 是什么?
2.作者是如何突然得出下面的指导方针的
指南:不要复制你的函数参数。相反,按值传递它们并让编译器进行复制。
我错过了什么吗?
'N+1' 中的 +1 是什么?
一个分配为新向量创建底层数组,然后是 N 个分配,每个分配一个用于向量中的 N 个字符串。
作者如何突然得出以下指南
他争辩说不是在函数内部显式地制作副本,
std::vector<std::string>
sorted2(std::vector<std::string> const& names) // names passed by reference
{
std::vector<std::string> r(names); // and explicitly copied
std::sort(r);
return r;
}
当您将参数传递给函数时,您应该让编译器制作副本,
std::vector<std::string>
sorted2(std::vector<std::string> names) // names passed by value
{ // and implicitly copied
std::sort(names);
return names;
}