Gunakan objek fungsi STL untuk memudahkan pengesahan dan transformasi data. Objek fungsi pengesahan mengembalikan nilai Boolean yang menunjukkan sama ada data itu sah objek fungsi penukaran mengembalikan nilai baharu. Objek fungsi ini boleh digunakan pada bekas data untuk melakukan pengesahan dan transformasi data, seperti mengesahkan bahawa nombor lebih besar daripada 10 dan menggandakan nombor lebih daripada 10.
Gunakan objek fungsi STL untuk pengesahan dan transformasi data
Pustaka STL mengandungi satu set objek fungsi yang boleh melakukan pelbagai operasi dan transformasi pada bekas data. Objek fungsi ini sangat berguna untuk mengendalikan tugas pengesahan dan transformasi data secara ringkas dan cekap.
Pengenalan kepada Objek Fungsi
Objek fungsi ialah kelas atau struktur yang boleh dipanggil seperti fungsi biasa dalam fungsi lain. Mereka mempunyai lebihan pengendali yang membolehkan aplikasi kepada data menggunakan sintaks panggilan fungsi.
Objek fungsi pengesahan
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(); } };
Tukar objek fungsi
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; } };
Kes praktikal: Sahkan dan tukar vektor berangka
Pertimbangkan vektor berikut, anda perlu mengesahkan sama ada nombor itu lebih besar daripada 10 dan dua kali ganda nombor lebih besar daripada 10:
rreeeAnda boleh menggunakan Objek fungsi STL untuk mengesahkan dan menukar seperti berikut:
vector<int> numbers = {5, 12, 3, 18, 6};
Sekarang, vektor result
akan mengandungi nilai yang diubah, di mana nombor yang lebih besar daripada 10 digandakan, manakala nombor yang kurang daripada atau sama dengan 10 kekal tidak berubah:
// 验证是否大于 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);
Atas ialah kandungan terperinci Bagaimana untuk menggunakan objek fungsi STL untuk pengesahan dan transformasi data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!