-2

我有一个功能

void foo(string *input) {
    string temp = "";
    input->swap(&temp);
}

但这似乎不起作用......我想原因是 temp 是一个临时变量,所以当我们离开这个函数时会被取消分配?

4

1 回答 1

3

swap()成员函数std::string接受引用,而不是指针:

input->swap(temp);

另外,我建议您以标准库的示例为例,并让您的foo()函数也接受引用而不是指针:

void foo(string& input) {
    string temp = "";
    input.swap(temp);
}
于 2013-05-24T22:15:21.673 回答