2
요소 컬렉션에 함수를 적용하면 std::transform
이 출력을 세 번째 매개 변수로 사용합니다. 결과를 반환하는 버전이 있나요? vec2 = map(func, vec1)
과 같은 것입니까?std :: transform의 기능 버전
요소 컬렉션에 함수를 적용하면 std::transform
이 출력을 세 번째 매개 변수로 사용합니다. 결과를 반환하는 버전이 있나요? vec2 = map(func, vec1)
과 같은 것입니까?std :: transform의 기능 버전
아니요, 표준 라이브러리에는 아무 것도 없습니다. 당신은 하나를 직접 작성할 수 있습니다
template<typename T, typename Func>
std::vector<T> transform(std::vector<T> const &input, Func func) {
std::vector<T> result(input.size());
std::transform(input.begin(), input.end(), result.begin(), func);
return result;
}
더 나은 솔루션이 추가 컨테이너를 할당하지 않는 transformed
adaptor from Boost.Range을 사용할 수 있습니다.
어떻게 그 함수가 무엇을 반환해야하는지 알 수 있습니까? 가장 가까운 곳은 아마도 'transform_iterator'일 것입니다. http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/transform_iterator.html을 참조하십시오. – filmor