如何重载 += 对于 std::数组类型,以便我可以执行以下操作
std::array<int, 3> x = {1,2,3};
std::array<int, 3> y = {4,5,6};
x += y;
如果要重载现有类型的运算符,而不更改该类型,则可以选择非成员重载。
在这里,您可以尝试模板化方法,以便在可以添加元素时覆盖所有可能的数组:
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;
}
在线演示