Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Terokai algoritma berulang dalam C++

Terokai algoritma berulang dalam C++

WBOY
WBOYasal
2023-08-21 21:54:481166semak imbas

C++ ialah bahasa pengaturcaraan popular yang menyediakan banyak algoritma berulang untuk memproses data pengumpulan. Dalam artikel ini, kami akan meneroka butiran algoritma berulang dalam C++.

Apakah itu algoritma lelaran?

Algoritma lelaran ialah algoritma berdasarkan aplikasi berulang proses atau arahan. Dalam pengaturcaraan, gelung adalah salah satu algoritma lelaran yang paling biasa digunakan. Lelaran merujuk kepada secara beransur-ansur menghampiri hasil yang diingini dengan berulang kali melakukan operasi yang sama. Dalam pengaturcaraan, pernyataan gelung sering digunakan untuk melaksanakan lelaran.

Algoritma Lelaran dalam C++

Dalam C++, perpustakaan standard menyediakan beberapa algoritma lelaran berbeza yang menggunakan iterator untuk mengakses elemen dalam bekas.

Lelaran ialah objek penunjuk yang boleh mengakses elemen dalam bekas. Iterator menyediakan lintasan elemen dalam bekas dan membolehkan kami memproses data.

Berikut ialah beberapa algoritma lelaran yang biasa digunakan dalam perpustakaan standard C++:

  1. for_each

for_each ialah algoritma mudah dan berguna yang melaksanakan fungsi pada setiap elemen dalam bekas tertentu.

Berikut adalah contoh:

#include <algorithm>
#include <vector>
#include <iostream>

void display(int i) {
    std::cout << i << " ";
}

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    std::for_each(v.begin(), v.end(), display);
    return 0;
}

Program ini akan mengeluarkan 1 2 3 4 5.

  1. find

algoritma find digunakan untuk mencari elemen dalam bekas dan mengembalikan lelaran elemen padanan pertama.

Berikut ialah contoh:

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    auto i = std::find(v.begin(), v.end(), 3);
    if (i != v.end()) {
        std::cout << "Found " << *i << std::endl;
    }
    return 0;
}

Program ini akan mengeluarkan Found 3.

  1. isih

Algoritma isihan digunakan untuk mengisih elemen dalam bekas mengikut fungsi perbandingan yang ditentukan.

Berikut adalah contoh:

#include <algorithm>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {5,2,7,4,3,6,1};
    std::sort(v.begin(), v.end());
    for (int i : v) {
        std::cout << i << " ";
    }
    return 0;
}

Program ini akan mengeluarkan 1 2 3 4 5 6 7.

  1. akumulasi

algoritma terkumpul digunakan untuk mengumpul elemen dalam bekas kepada nilai awal.

Berikut ialah contoh:

#include <numeric>
#include <vector>
#include <iostream>

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    int sum = std::accumulate(v.begin(), v.end(), 0);
    std::cout << "Sum: " << sum << std::endl;
    return 0;
}

Program ini akan mengeluarkan Jumlah: 15.

  1. transform

Algoritma transformasi digunakan untuk menggunakan fungsi pada elemen dalam bekas dan menyimpan hasilnya dalam bekas lain.

Berikut adalah contoh:

#include <algorithm>
#include <vector>
#include <iostream>

int square(int i) {
    return i * i;
}

int main() {
    std::vector<int> v {1, 2, 3, 4, 5};
    std::vector<int> v2(v.size());
    std::transform(v.begin(), v.end(), v2.begin(), square);
    for (int i : v2) {
        std::cout << i << " ";
    }
    return 0;
}

Program ini akan mengeluarkan 1 4 9 16 25.

Ringkasan

Algoritma lelaran ialah algoritma popular yang sesuai untuk memproses data set. Dalam C++, perpustakaan standard menyediakan beberapa algoritma lelaran berbeza yang menyediakan cara yang mudah untuk memproses elemen dalam bekas. Kita boleh menggunakan algoritma ini untuk melintasi, mencari dan mengubah suai elemen dalam bekas. Kemahiran dalam algoritma berulang dalam C++ boleh membantu kami memproses data pengumpulan dengan lebih baik dan meningkatkan kecekapan pengaturcaraan kami.

Atas ialah kandungan terperinci Terokai algoritma berulang dalam 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