Contoh masalah biasa yang diselesaikan dengan pengaturcaraan templat?

PHPz
Lepaskan: 2024-05-08 13:48:01
asal
503 orang telah melayarinya

Pengaturcaraan templat boleh menyelesaikan masalah pengaturcaraan biasa: jenis kontena: dengan mudah membuat bekas seperti senarai terpaut, tindanan dan baris gilir: mencipta objek yang boleh dipanggil sebagai fungsi, memudahkan perbandingan algoritma: pada pelbagai jenis data Jalankan umum; -algoritma tujuan tanpa pelaksanaan khusus;

Contoh masalah biasa yang diselesaikan dengan pengaturcaraan templat?

Contoh soalan lazim tentang pengaturcaraan templat

Pengaturcaraan templat ialah teknik berkuasa yang boleh menjadikan kod lebih serba boleh dan boleh digunakan semula. Ia boleh menyelesaikan banyak masalah biasa dengan cara berikut:

1 Jenis bekas

Pengaturcaraan templat memudahkan anda mencipta jenis bekas anda sendiri, seperti senarai terpaut, tindanan dan baris gilir, tanpa perlu melaksanakan semula fungsi biasa seperti itu. sebagai lelaran dan saiz semula.

template<class T>
class Stack {
  vector<T> data;
  int top;

public:
  Stack() { top = -1; }
  void push(const T& value) { data.push_back(value); top++; }
  T pop() { if (top < 0) throw exception(); return data.back(); }
};
Salin selepas log masuk

2. Fungsi fungsi

Templat pengaturcaraan boleh membantu mencipta fungsi fungsi, objek yang boleh dipanggil seperti fungsi. Ini berguna dalam algoritma, yang selalunya memerlukan penggunaan penunjuk fungsi atau fungsi tanpa nama untuk menentukan perbandingan atau operasi lain.

template<class T>
struct Comparator {
  bool operator()(const T& a, const T& b) {
    return a < b;
  }
};

// 使用方式
sort(data.begin(), data.end(), Comparator<int>());
Salin selepas log masuk

3. Algoritma Generik

Pengaturcaraan templat membolehkan anda mencipta algoritma generik yang berfungsi pada pelbagai jenis data tanpa perlu melaksanakannya secara khusus untuk setiap jenis.

template<class T>
void find(vector<T>& data, T value) {
  for (auto it = data.begin(); it != data.end(); it++) {
    if (*it == value) return;
  }
  throw exception();
}
Salin selepas log masuk

4. Penyesuai Bekas

Pengaturcaraan templat boleh mencipta penyesuai bekas yang mengubah suai tingkah laku bekas sedia ada tanpa mencipta salinan baharu bekas.

template<class Container>
class IndexedContainer {
  Container& container;
  size_t index;

public:
  IndexedContainer(Container& c) : container(c), index(0) {}
  T& operator*() { return container[index]; }
  void operator++() { index++; }
};

// 使用方式
for (auto& item : IndexedContainer(data)) {
  // ...
}
Salin selepas log masuk

5. Kelas penghitungan

Pengaturcaraan berasaskan templat memudahkan untuk membuat kelas penghitungan dengan pengesahan jenis yang kuat yang disemak pada masa penyusunan.

rreeee

Atas ialah kandungan terperinci Contoh masalah biasa yang diselesaikan dengan pengaturcaraan templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan