Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Fungsi manakah dalam STL boleh menggunakan objek fungsi C++?

Fungsi manakah dalam STL boleh menggunakan objek fungsi C++?

WBOY
WBOYasal
2024-04-25 22:21:02638semak imbas

STL menyediakan berbilang fungsi yang menerima objek fungsi C++ sebagai parameter dan digunakan untuk mengendalikan koleksi atau melakukan transformasi tertentu. Fungsi ini termasuk: transform(): Mengubah elemen koleksi menggunakan objek fungsi yang ditentukan. for_each(): Melakukan operasi pada setiap elemen dalam koleksi, menggunakan objek fungsi yang ditentukan. sort(): Mengisih koleksi mengikut objek fungsi perbandingan yang ditentukan. find_if(): Cari elemen yang memenuhi syarat yang ditentukan (ditakrifkan oleh objek fungsi). count_if(): Mengira bilangan elemen yang memenuhi syarat yang ditentukan (ditakrifkan oleh objek fungsi).

STL 中有哪些函数可以使用 C++ 函数对象?

Fungsi dalam STL yang boleh menggunakan objek fungsi C++

Terdapat beberapa fungsi dalam STL (Standard Template Library) yang boleh menerima objek fungsi C++ sebagai parameter. Fungsi ini biasanya digunakan untuk memanipulasi koleksi atau melakukan transformasi tertentu. Berikut ialah beberapa contoh biasa:

  • transform(): Ubah julat elemen kepada julat elemen lain, menggunakan objek fungsi yang ditentukan sebagai fungsi transformasi.
  • for_each(): Lakukan operasi pada setiap elemen dalam koleksi, menggunakan objek fungsi yang ditentukan.
  • sort(): Isih koleksi mengikut objek fungsi perbandingan yang ditentukan.
  • find_if(): Cari elemen dalam koleksi yang memenuhi syarat yang ditentukan (ditakrifkan oleh objek fungsi).
  • count_if(): Kira bilangan elemen dalam set yang memenuhi syarat yang ditentukan (ditakrifkan oleh objek fungsi).

Kes praktikal

Contoh kod berikut menunjukkan cara menggunakan objek fungsi transform() untuk menukar nombor kepada rentetan:

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

using namespace std;

int main() {
  // 创建一个数字向量
  vector<int> numbers = {1, 2, 3, 4, 5};

  // 定义一个将数字转换为字符串的函数对象
  struct IntToString {
    string operator()(int num) const {
      return to_string(num);
    }
  };

  // 使用 transform() 将数字向量转换为字符串向量
  vector<string> strings;
  transform(begin(numbers), end(numbers), back_inserter(strings), IntToString());

  // 打印字符串向量
  for (const auto &str : strings) {
    cout << str << endl;
  }

  return 0;
}

Dalam contoh ini, objek fungsi IntToString mentakrifkan fungsi yang menukar integer kepada rentetan operator(). Fungsi transform() menggunakan ini sebagai fungsi transformasi untuk menukar vektor berangka kepada vektor rentetan.

Atas ialah kandungan terperinci Fungsi manakah dalam STL boleh menggunakan objek fungsi 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