-3
두 개의 벡터 (작은 값의 예제 V1 = {1,2,3} V2 {4,5,6}, V3 = {5,7,9})의 요소를 추가하고 10을 모듈로 취하고 싶습니다. 9 + 7 거기에 더 빠른 (루핑보다) 방법이 무엇입니까 ??변환 및 플러스 <int>()을 사용하여 벡터의 요소를 10^9 + 7로 모듈화 합니다. 이런 식으로 할 수있는 방법이 있습니까?
두 개의 벡터 (작은 값의 예제 V1 = {1,2,3} V2 {4,5,6}, V3 = {5,7,9})의 요소를 추가하고 10을 모듈로 취하고 싶습니다. 9 + 7 거기에 더 빠른 (루핑보다) 방법이 무엇입니까 ??변환 및 플러스 <int>()을 사용하여 벡터의 요소를 10^9 + 7로 모듈화 합니다. 이런 식으로 할 수있는 방법이 있습니까?
당신이 사용할 수있는 람다 : 벡터 대신
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 기능을 사용하는 것입니다.
무엇보다 빠른? –