벡터에서 변환/기능을 수행해야 할 때 최근에 범위 어댑터를 사용하기 시작했습니다. 다음은 범위 어댑터를 사용하기 시작할 때 가장 간단한 예제 중 하나의 스 니펫입니다.C++ 부스트 범위 어댑터 여러 벡터
int multiplyByTwo(int n) { return n*2; }
std::vector<int> num = {1, 2, 3, 4, 5};
auto result = num | boost::adaptors::transformed(multiplyByTwo);
내 함수에서 하나의 인수 대신 두 개의 인수가 필요한 경우 범위 어댑터에 두 개의 벡터를 전달할 수있는 방법이 있습니까? 예를 들어,이 상황에서 :
int multiplyBoth(int n1, int n2) {return n1*n2; }
std::vector<int> num1 = {1, 2, 3, 4, 5};
std::vector<int> num2 = {1, 2, 3, 4, 5};
는 여전히 다양한 어댑터를 통해 내 기능에 num1
및 num2
을 모두 벡터 파이프 할 수 있습니까? 이 같은 아마 뭔가 :
auto result = num1 | num2 | boost::adaptors::transformed(multiplyBoth);
'std :: transform'을 사용 하는게 어떻습니까? –