<分区>
给出这个例子:
std::vector<std::string> split(const std::string& str) {
std::vector<std::string> result;
std::string curr;
for (auto c : str) {
if (c == DELIMITER) {
result.push_back(std::move(curr)); // ATTENTION HERE!
} else {
curr.push_back(c);
}
}
result.push_back(std::move(curr));
return result;
}
我可以重用 curr
std:string 吗?此代码段似乎有效: curr
移入内部后
result
vector ,它变为空。我想确定这不是标准中未定义的行为,而且它不是仅仅因为运气而起作用。