【发布时间】:2015-07-18 17:08:46
【问题描述】:
我发现许多解决方案会重载输出流运算符以打印出向量。我需要做相反的事情。类似的,
vector<string> v;
v << "String1" << "String2" << "String3" << "String4" << "String5";
我有这段代码,它只添加了第一个字符串。我明白为什么会这样,但我不知道如何添加其他字符串。
template<typename T, typename T2>
vector<T> operator<<(vector<T>& v1, T2 s) {
v1.push_back(s);
return v1;
}
【问题讨论】:
-
返回参考
vector<T>& operator... -
请不要。 “流”重载已经够糟糕了。如果必须使用运算符,请使用 + 和 - 进行添加和删除。
-
我想通了。我只需要返回 vector
& 而不是 vector
标签: c++ vector operator-overloading