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

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

Apr 17, 2024 pm 06:03 PM
c++ lambda susunan

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

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

输出

dog
apple
banana
cherry
elephant
Salin selepas log masuk

在这个示例中,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 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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Adakah saya perlu menggunakan Flexbox di tengah gambar bootstrap? Adakah saya perlu menggunakan Flexbox di tengah gambar bootstrap? Apr 07, 2025 am 09:06 AM

Terdapat banyak cara untuk memusatkan gambar bootstrap, dan anda tidak perlu menggunakan Flexbox. Jika anda hanya perlu berpusat secara mendatar, kelas pusat teks sudah cukup; Jika anda perlu memusatkan elemen secara menegak atau berganda, Flexbox atau Grid lebih sesuai. Flexbox kurang serasi dan boleh meningkatkan kerumitan, manakala grid lebih berkuasa dan mempunyai kos pengajian yang lebih tinggi. Apabila memilih kaedah, anda harus menimbang kebaikan dan keburukan dan memilih kaedah yang paling sesuai mengikut keperluan dan keutamaan anda.

Bagaimana dengan elegan menyelesaikan masalah jarak yang terlalu kecil dari tag span selepas rehat garis? Bagaimana dengan elegan menyelesaikan masalah jarak yang terlalu kecil dari tag span selepas rehat garis? Apr 05, 2025 pm 06:00 PM

Cara dengan elegan mengendalikan jarak tag span selepas garis baru dalam susun atur laman web, anda sering memenuhi keperluan untuk mengatur pelbagai rentang secara mendatar ...

Cara memusatkan gambar dalam bekas untuk bootstrap Cara memusatkan gambar dalam bekas untuk bootstrap Apr 07, 2025 am 09:12 AM

Gambaran Keseluruhan: Terdapat banyak cara untuk memusatkan imej menggunakan Bootstrap. Kaedah Asas: Gunakan kelas MX-AUTO ke pusat secara mendatar. Gunakan kelas IMG-cecair untuk menyesuaikan diri dengan bekas induk. Gunakan kelas D-block untuk menetapkan imej ke elemen peringkat blok (pusat menegak). Kaedah Lanjutan: Susun atur Flexbox: Gunakan sifat-Center-Center-Center dan Align-Items-Center. Susun atur Grid: Gunakan Tempat-Item: Properti Pusat. Amalan terbaik: Elakkan bersarang dan gaya yang tidak perlu. Pilih kaedah terbaik untuk projek ini. Perhatikan pemeliharaan kod dan elakkan mengorbankan kualiti kod untuk meneruskan kegembiraan

Apakah perubahan yang telah dibuat dengan gaya senarai Bootstrap 5? Apakah perubahan yang telah dibuat dengan gaya senarai Bootstrap 5? Apr 07, 2025 am 11:09 AM

Perubahan gaya Bootstrap 5 adalah disebabkan oleh pengoptimuman terperinci dan peningkatan semantik, termasuk: margin lalai senarai yang tidak teratur dipermudahkan, dan kesan visual adalah bersih dan kemas; Gaya senarai menekankan semantik, meningkatkan kebolehcapaian dan penyelenggaraan.

Bagaimana untuk mencapai kesan menatal mendatar pilihan mendatar dengan berputar elemen dalam CSS? Bagaimana untuk mencapai kesan menatal mendatar pilihan mendatar dengan berputar elemen dalam CSS? Apr 05, 2025 pm 10:51 PM

Bagaimana untuk mencapai kesan menatal mendatar pilihan mendatar dalam CSS? Dalam reka bentuk web moden, bagaimana untuk mencapai kesan seperti tab mendatar dan menyokong tetikus ...

C dan Pengaturcaraan Sistem: Kawalan Rendah dan Interaksi Perkakasan C dan Pengaturcaraan Sistem: Kawalan Rendah dan Interaksi Perkakasan Apr 06, 2025 am 12:06 AM

C sesuai untuk pengaturcaraan sistem dan interaksi perkakasan kerana ia menyediakan keupayaan kawalan dekat dengan perkakasan dan ciri-ciri kuat pengaturcaraan berorientasikan objek. 1) C melalui ciri-ciri peringkat rendah seperti penunjuk, pengurusan memori dan operasi bit, operasi peringkat sistem yang cekap dapat dicapai. 2) Interaksi perkakasan dilaksanakan melalui pemacu peranti, dan C boleh menulis pemandu ini untuk mengendalikan komunikasi dengan peranti perkakasan.

Bagaimana cara menukar saiz senarai bootstrap? Bagaimana cara menukar saiz senarai bootstrap? Apr 07, 2025 am 10:45 AM

Saiz senarai bootstrap bergantung kepada saiz bekas yang mengandungi senarai, bukan senarai itu sendiri. Menggunakan sistem grid Bootstrap atau Flexbox boleh mengawal saiz bekas, dengan itu secara tidak langsung mengubah saiz item senarai.

Python vs C: Aplikasi dan kes penggunaan dibandingkan Python vs C: Aplikasi dan kes penggunaan dibandingkan Apr 12, 2025 am 12:01 AM

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

See all articles