以下面的函数为例
string print()
{
return (some string that has been formed);
};
现在让我们说这个打印函数将形成一个非常大的字符串,需要返回到从另一个类调用它的函数。
现在说这个打印函数可能会被调用数千次。有没有正确和更快的方法来做到这一点?
在 Visual Studio 中,您可以执行此操作
void print(string& lines)
{
lines = (some string that has been formed);
};
但是 g++ 不会编译它,也不应该这样做,因为这可能是一个临时对象,随时可能消失。所以据我了解,我可以做到这一点
void print(const string& lines)
{
};
如果我只想在不修改它的情况下检索该字符串中的某些内容并快速完成。但我确实想修改它。所以这个我做不到。
这导致我的问题是声明一个指向对象的新指针将是最快的方法?还是更慢?还是只是不值得。即(不确定这是否可行?)
void print(string* lines)
{
string formedString; // the string that has been formed
lines = formedString&;
};
最后,如果我在运行时加载对象,并通过以下方式将它们添加到树中:
void add(const ItemType& item)
{
someNode->item = item;
};
item
最初是在调用 this 的函数范围内临时存储的对象,add()
那么将它分配给节点会导致调用函数的堆栈停留更长时间吗?或者这样可以吗?我以后也可以编辑item
,还是现在卡在 const 上?
只是学习思维的问题:)