-3
私は2つのベクトル(小さな値の例V1 = {1,2,3} V2 {4,5,6}、V3 = {5,7,9})の要素を追加したいと思います。また、 9 + 7は、これに対して何らかの速い(ルーピングよりも)方法がありますか?transformとplusを使用してベクトルの要素の合計と10^9 + 7を剰余します。<int>()。このようなやり方はありますか?
私は2つのベクトル(小さな値の例V1 = {1,2,3} V2 {4,5,6}、V3 = {5,7,9})の要素を追加したいと思います。また、 9 + 7は、これに対して何らかの速い(ルーピングよりも)方法がありますか?transformとplusを使用してベクトルの要素の合計と10^9 + 7を剰余します。<int>()。このようなやり方はありますか?
あなたはラムダを使用することができます。代わりに、ベクトルの
std::transform(v1.begin(), v1.end(), v2.begin(), std::back_inserter(v3),
[](int x, int y) { return x + y; });
またはstd::valarrayを:
std::valarray<int> v1 = {1,2,3};
std::valarray<int> v2 = {4,5,6};
std::valarray<int> v3 = v1 + v2; // or other arithmetics
std::transform
に別の方法としては、std::for_each機能を使用することです。
何よりも速いですか? –