Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan peraturan pengisihan tersuai menggunakan ungkapan lambda C++?

Bagaimana untuk melaksanakan peraturan pengisihan tersuai menggunakan ungkapan lambda C++?

王林
王林asal
2024-04-17 18:03:011093semak imbas

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.

用 C++ lambda 表达式自定义排序规则如何实现?

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:

  • senarai tangkapan: Pilihan, digunakan untuk menangkap rujukan kepada pembolehubah luaran.
  • 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 捕获了对外部变量 ab 的引用,并返回 a 的长度是否小于 b 的长度。排序函数 sortparameter: Pilihan, digunakan untuk mendapatkan parameter input.

-> jenis pemulangan: Pilihan, digunakan untuk menentukan jenis pemulangan. 🎜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!

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