如何为 std :: array 类型重载 + = ,以便我可以执行以下操作
std::array<int, 3> x = {1,2,3};
std::array<int, 3> y = {4,5,6};
x += y;
答案 0 :(得分:0)
如果您想overload an operator使用现有类型,而无需更改该类型,则可以选择非成员重载。
在这里,您可以尝试使用模板化方法,以便在可以添加元素的情况下覆盖所有可能的数组:
template <class T, size_t n>
std::array<T,n>& operator+= (std::array< T, n>& l, const std::array<T, n> &r) {
for (size_t i=0; i<n; i++)
l[i] += r[i];
return l;
}