重载各种算术运算符(+
、-
、*
、/
、 +=
, ...) 对于 std::array
和 std::vector
?算术运算是成员级的。类似下面的内容
template<class ContainerT, class opT>
ContainerT operator opT(ContainerT const& a, ContainerT const& b)
{
....
}
template<class ContainerT, class opT>
ContainerT operator opT=(ContainerT const& a, ContainerT const& b)
{
....
}
最佳答案
std::vector<int> input1(..);
std::vector<int> input2(..);
std::vector<int> output(input1.size());
std::transform (input1.begin(), input1.end(), input2.begin(), output.begin(), std::plus<int>());
还有其他仿函数可供选择,您始终可以自己制作或使用 lambda。
关于c++ - 有什么简单的方法可以为 std::array 和 std::vector 实现算术运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740277/