Rumah >pembangunan bahagian belakang >C++ >Apakah beberapa contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data?

Apakah beberapa contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data?

王林
王林asal
2024-04-18 09:15:01746semak imbas

Dalam C++, ungkapan lambda boleh digunakan untuk menapis dan mengubah data dengan mudah. Sebagai contoh, anda boleh menggunakan ungkapan lambda untuk menapis elemen ganjil dalam bekas, mengubah elemen dalam bekas, menapis dan mengubah bekas bersekutu, menggunakan ungkapan lambda dalam algoritma dan lulus ungkapan lambda sebagai hujah fungsi. Kaedah ini boleh menjadikan tugas pemprosesan data lebih mudah dan lebih cekap.

使用 C++ lambda 表达式进行数据过滤和转换有哪些实战案例?

Contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data

Ekspresi lambda sangat berguna dalam C++, terutamanya apabila menapis dan mengubah data. Berikut adalah beberapa contoh aplikasi praktikal:

1. Tapis elemen dalam bekas

std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

// 使用 lambda 表达式过滤奇数
std::vector<int> odd_numbers = std::filter(numbers.begin(), numbers.end(), [](int n) { return n % 2 != 0; });

2 Transform elemen dalam bekas

std::vector<double> squares = std::transform(numbers.begin(), numbers.end(), [](int n) { return n * n; });

3. Tapis dan ubah bekas yang berkaitan .

ungkapan dalam algoritma

std::map<int, std::string> name_age = {
    {1, "John"},
    {2, "Mary"},
    {3, "Bob"},
    {4, "Alice"}
};

// 过滤年龄大于 2 的人
auto filtered_name_age = std::map<int, std::string>(name_age.begin(), name_age.end(), [](const std::pair<int, std::string>& p) { return p.second.size() > 2; });

5. Melepasi ungkapan lambda sebagai parameter fungsi

std::sort(numbers.begin(), numbers.end(), [](int a, int b) { return a > b; }); // 从大到小排序

Ini hanyalah beberapa cara untuk menggunakan ungkapan lambda untuk penapisan dan transformasi data dalam C++. Dengan memanfaatkan ungkapan lambda, anda boleh menulis kod ringkas dan berkuasa untuk mengendalikan pelbagai tugas manipulasi data.

Atas ialah kandungan terperinci Apakah beberapa contoh praktikal menggunakan ungkapan lambda C++ untuk penapisan dan transformasi data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn