【发布时间】:2012-07-17 20:18:16
【问题描述】:
我最近看到以下代码块作为对这个问题的回应:Split a string in C++?
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string>
&elems) {
std::stringstream ss(s);
std::string item;
while(std::getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
为什么在这里返回通过引用传递的数组“elems”如此重要?我们不能把它变成一个 void 函数,或者返回一个整数来表示成功/失败吗?无论如何,我们正在编辑实际的数组,对吧?
谢谢!
【问题讨论】:
-
它实际上是通过引用返回向量,而不是内存地址。
-
@Ben Decato 仅供参考:如果您查看 > 运算符重载(任何地方)的实现,您会看到这样的链接。这些运算符接收一个流并返回对同一流的引用,因此您可以执行诸如 std::cout
-
谢谢——我编辑了帖子的标题以反映这一新发现的知识。
标签: c++ string vector pass-by-reference