STL 함수 개체를 사용하여 데이터 검증 및 변환을 단순화하세요. 확인 함수 개체는 데이터가 유효한지 여부를 나타내는 부울 값을 반환합니다. 변환 함수 개체는 새 값을 반환합니다. 이러한 함수 개체를 데이터 컨테이너에 적용하여 숫자가 10보다 큰지 확인하고 10보다 큰 숫자를 두 배로 늘리는 등 데이터 유효성 검사 및 변환을 수행할 수 있습니다.
데이터 검증 및 변환을 위해 STL 함수 개체 사용
STL 라이브러리에는 데이터 컨테이너에서 다양한 작업과 변환을 수행할 수 있는 함수 개체 집합이 포함되어 있습니다. 이러한 함수 개체는 데이터 유효성 검사 및 변환 작업을 간결하고 효율적으로 처리하는 데 매우 유용합니다.
함수 객체 소개
함수 객체는 다른 함수에서 일반 함수처럼 호출할 수 있는 클래스 또는 구조체입니다. 함수 호출 구문을 사용하여 데이터에 적용할 수 있는 연산자 오버로드가 있습니다.
Validation function object
struct IsEven { bool operator()(int x) { return x % 2 == 0; } };
struct IsInVector { bool operator()(int x, vector<int>& v) { return find(v.begin(), v.end(), x) != v.end(); } };
Convert 함수 개체
struct DoubleValue { double operator()(int x) { return (double)x * 2; } };
struct AddVectors { vector<int> operator()(vector<int>& v1, vector<int>& v2) { vector<int> result; for (int i = 0; i < v1.size(); i++) { result.push_back(v1[i] + v2[i]); } return result; } };
실제 사례: 숫자 벡터 확인 및 변환
다음 벡터를 고려하여 숫자가 10보다 큰지 확인하고 10보다 큰 숫자를 두 배로 늘려야 합니다.
vector<int> numbers = {5, 12, 3, 18, 6};
다음 벡터를 사용할 수 있습니다. 다음과 같이 확인하고 변환할 STL 함수 개체:
// 验证是否大于 10 bool is_greater_than_10(int x) { return x > 10; } // 加倍大于 10 的数字 double double_if_greater_than_10(int x) { return x > 10 ? x * 2 : x; } // 验证并对向量应用转换 vector<int> result; transform(numbers.begin(), numbers.end(), back_inserter(result), double_if_greater_than_10);
이제 result
벡터에는 변환된 값이 포함됩니다. 여기서 10보다 큰 숫자는 두 배가 되고 10보다 작거나 같은 숫자는 변경되지 않습니다.
// 输出转换后的结果 for (int num : result) { cout << num << " "; } // 输出:5 24 3 36 6
위 내용은 데이터 검증 및 변환을 위해 STL 함수 개체를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!