Gunakan ungkapan C++ Lambda untuk menyesuaikan peraturan pengisihan untuk menentukan logik pengisihan secara fleksibel. Sintaksnya ialah: [senarai tangkapan](parameter) -> Dalam kes sebenar, ungkapan lambda sortLambda mengisih mengikut panjang rentetan, dan outputnya ialah: anjing, epal, pisang, ceri, gajah.
Pengumpulan tersuai dengan ungkapan C++ Lambda
Ekspresi Lambda ialah fungsi tanpa nama yang boleh digunakan untuk menentukan penyusunan tersuai dalam C++. Ia menyediakan cara yang mudah dan fleksibel untuk mengisih data anda berdasarkan logik tersuai.
Syntax
Sintaks ungkapan lambda tipikal adalah seperti berikut:
[capture list](parameters) -> return type { body }
Di mana:
capture list
:可选,用于捕获对外部变量的引用。parameters
:可选,用于获取输入参数。-> return type
:可选,用于指定返回类型。body
:函数体,包含要执行的代码。实战案例
下面是一个使用 lambda 表达式自定义排序规则的实战案例,用于对一个字符串向量按其长度排序:
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<string> strings = {"apple", "banana", "cherry", "dog", "elephant"}; // 定义 lambda 表达式,将字符串按长度排序 auto sortLambda = [](const string& a, const string& b) { return a.length() < b.length(); }; // 使用 lambda 表达式对向量排序 sort(strings.begin(), strings.end(), sortLambda); // 打印排序后的向量 for (const string& s : strings) { cout << s << endl; } return 0; }
输出
dog apple banana cherry elephant
在这个示例中,lambda 表达式 sortLambda
捕获了对外部变量 a
和 b
的引用,并返回 a
的长度是否小于 b
的长度。排序函数 sort
body
: Badan fungsi, mengandungi kod yang akan dilaksanakan. 🎜🎜Kes praktikal🎜🎜🎜Berikut ialah kes praktikal menggunakan ungkapan lambda untuk menyesuaikan peraturan pengisihan, yang digunakan untuk mengisih vektor rentetan mengikut panjangnya: 🎜rrreee🎜🎜Output🎜🎜rreee 🎜 Dalam contoh ini, ungkapan lambda sortLambda
menangkap rujukan kepada pembolehubah luaran a
dan b
dan mengembalikan a
Sama ada panjang kod> adalah kurang daripada panjang b
. Fungsi isihan isih
menggunakan ungkapan lambda ini untuk mengisih vektor rentetan dalam tertib menaik panjangnya. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan peraturan pengisihan tersuai menggunakan ungkapan lambda C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!