Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah algoritma generik biasa dalam perpustakaan standard C++?

Apakah algoritma generik biasa dalam perpustakaan standard C++?

WBOY
WBOYasal
2024-06-06 13:06:58948semak imbas

Pustaka standard C++ menyediakan algoritma generik untuk operasi data biasa, termasuk mencari, mengira, mengisih, penukaran dan traversal. Algoritma ini dilaksanakan melalui find(), count(), sort(), transform(), dan for_each(), memudahkan dan menambah baik kesederhanaan kod. Sebagai contoh, anda boleh menggunakan find() untuk mencari elemen, count() untuk mengira bilangan kejadian elemen, sort() untuk mengisih bekas, transform() untuk mengubah elemen, dan for_each() untuk mengulangi bekas untuk melaksanakan operasi.

Apakah algoritma generik biasa dalam perpustakaan standard C++?

Algoritma generik yang biasa digunakan dalam perpustakaan standard C++

Algoritma generik memainkan peranan penting dalam pustaka standard C++ Ia menyediakan set operasi biasa yang boleh digunakan pada pelbagai jenis data. Dengan menggunakan algoritma ini, pengaturcara boleh mengelak daripada menulis kod pendua dan meningkatkan kesederhanaan kod.

Berikut ialah beberapa algoritma generik yang paling biasa dalam pustaka standard C++:

  • find(): Cari kejadian pertama elemen tertentu dalam bekas.
  • count(): Kira bilangan kali elemen muncul dalam bekas.
  • isih(): Isih unsur dalam bekas.
  • transform(): Tukar elemen dalam satu bekas kepada elemen dalam bekas lain.
  • for_each(): Lakukan operasi pada setiap elemen dalam bekas.

Kes praktikal:

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

int main() {
  // 创建一个 int 类型的向量
  std::vector<int> numbers{1, 2, 3, 4, 5};

  // 使用 find() 查找元素 3 的位置
  auto it = std::find(numbers.begin(), numbers.end(), 3);

  // 使用 count() 计算元素 3 出现的次数
  int count = std::count(numbers.begin(), numbers.end(), 3);

  // 使用 sort() 对向量进行升序排序
  std::sort(numbers.begin(), numbers.end());

  // 使用 transform() 将每个元素乘以 2
  std::transform(numbers.begin(), numbers.end(), numbers.begin(), [](int n) { return n * 2; });

  // 使用 for_each() 打印每个元素
  std::for_each(numbers.begin(), numbers.end(), [](int n) { std::cout << n << ' '; });

  std::cout << '\n';

  return 0;
}

Dalam kes ini:

  • find(): Mengembalikan lelaran elemen 3.
  • count(): Mengembalikan bilangan kali elemen 3 muncul (1).
  • isih(): Isih vektor dalam tertib menaik.
  • transform(): Darab setiap elemen dengan 2.
  • for_each(): Cetak setiap elemen dalam vektor satu demi satu.

Atas ialah kandungan terperinci Apakah algoritma generik biasa dalam perpustakaan standard 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