我有一个功能
void foo(string *input) {
string temp = "";
input->swap(&temp);
}
但这似乎不起作用......我想原因是temp是一个时间变量 因为我们离开这个功能会被取消分配吗?
答案 0 :(得分:3)
std::string
的{{3}}成员函数接受引用,而不是指针:
input->swap(temp);
另外,我建议您使用标准库的示例,并让您的foo()
函数也接受引用而不是指针:
void foo(string& input) {
string temp = "";
input.swap(temp);
}