gpt4 book ai didi

c++ - 不使用循环 C++ 添加数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:50:28 28 4
gpt4 key购买 nike

我们如何在不在 C++ 中编写显式循环的情况下添加两个相同大小的数组例如:

int a[3]={1,2,3};
int b[3]={4,3,2};
int c[3]; //to contain sum of a and b

最佳答案

如果无法使用显式循环,则可以使用隐式循环。让标准库为您做这件事。

std::transform(a, a + 3, b, c, std::plus<int>{});

如果您发现自己经常在相同大小的数组上执行此操作,您甚至可以将其模板化:

template<typename T, std::size_t N>
void add_arrays( T (const &a)[N], T (const &b)[N], T (&c)[N] ) {
std::transform(a, a + N, b, c, std::plus<T>{});
}

编译器会很好地为您检查大小。而且您甚至不必就此打住。有很多方法可以使 add_arrays 在更多上下文中可用。


说了这么多。尝试放弃使用原始数组。默认使用 std::array。它是对原始数组的薄包装,但它具有值语义。如果您出于某种目的需要固定的事物集合(假设您正在进行图形编程,因此您存储坐标),请尝试使用指定的类型。

关于c++ - 不使用循环 C++ 添加数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47922266/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com