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

王林
Lepaskan: 2024-04-18 09:15:01
asal
724 orang telah melayarinya

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; });
Salin selepas log masuk

2 Transform elemen dalam bekas

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

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; });
Salin selepas log masuk

5. Melepasi ungkapan lambda sebagai parameter fungsi

std::sort(numbers.begin(), numbers.end(), [](int a, int b) { return a > b; }); // 从大到小排序
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!