Petua untuk menggunakan parameter jenis dalam templat fungsi C++?

WBOY
Lepaskan: 2024-04-15 10:45:01
asal
1093 orang telah melayarinya

Gunakan helah parameter jenis untuk mencipta templat fungsi C++ generik yang berfungsi untuk sebarang jenis, termasuk: Mengisytiharkan parameter jenis: Gunakan kurungan sudut <> dan nama taip untuk mengisytiharkan parameter jenis. Gunakan parameter jenis: Gunakan parameter jenis sebagai pengisytiharan jenis dalam badan fungsi. Kes praktikal: Gunakan parameter jenis untuk mencipta fungsi tolak kelas Stack umum. Petua lain: menentukan parameter jenis lalai, parameter berbilang jenis dan kekangan yang dikenakan.

C++ 函数模板中类型参数的使用技巧?

Petua untuk menggunakan parameter jenis dalam templat fungsi C++

Templat fungsi membolehkan anda mencipta fungsi yang boleh menyasarkan jenis data yang berbeza. Menggunakan parameter jenis, anda boleh menyamaratakan lagi templat supaya ia boleh digunakan dengan sebarang jenis.

Pengisytiharan parameter jenis

Untuk mengisytiharkan parameter jenis, gunakan kurungan sudut <> Contohnya:

template <typename T>
void print(const T& value) {
  std::cout << value << std::endl;
}
Salin selepas log masuk

Di sini, T ialah parameter jenis, yang boleh digunakan sebagai mana-mana jenis dalam fungsi. T 是一个类型参数,它可以用作函数中的任何类型。

使用类型参数

一旦声明了类型参数,您就可以在函数体内使用它。您可以将其用作参数类型、返回值类型或其他类型的声明中。例如:

template <typename T>
T add(const T& a, const T& b) {
  return a + b;
}
Salin selepas log masuk

此函数可用于针对任何支持加法运算的类型进行加法运算。

实战案例

假设您有一个 Stack 类,它可以将任何类型的元素存储在堆栈中。您可以使用类型参数创建通用 push 函数:

template <typename T>
void Stack<T>::push(const T& element) {
  data_.push_back(element);
}
Salin selepas log masuk

push 函数可以针对任何可以存储在堆栈中的 T 类型正常工作。

其他技巧

  • 默认类型参数:您可以使用 typename 关键字指定默认类型参数,如果用户未提供参数,则使用此参数。
  • 多个类型参数:一个模板可以有多个类型参数,用 , 分隔。
  • 约束:您可以使用 classtypenametypename…
Menggunakan parameter jenis

🎜Setelah parameter jenis diisytiharkan, anda boleh menggunakannya di dalam badan fungsi. Anda boleh menggunakannya sebagai jenis parameter, jenis nilai pulangan atau dalam pengisytiharan jenis lain. Contohnya: 🎜rrreee🎜Fungsi ini boleh digunakan untuk melakukan operasi tambah terhadap sebarang jenis yang menyokong operasi tambah. 🎜🎜🎜Kes Praktikal🎜🎜🎜Andaikata anda mempunyai kelas Timbunan yang boleh menyimpan sebarang jenis elemen dalam tindanan. Anda boleh mencipta fungsi push generik menggunakan parameter jenis: 🎜rrreee🎜Fungsi push ini akan berfungsi dengan betul untuk mana-mana jenis T yang boleh disimpan pada timbunan itu. 🎜🎜🎜Petua lain🎜🎜
  • 🎜Parameter jenis lalai: 🎜Anda boleh menggunakan kata kunci typename untuk menentukan parameter jenis lalai, yang digunakan jika tiada parameter disediakan oleh pengguna . 🎜
  • 🎜Parameter berbilang jenis: 🎜Templat boleh mempunyai berbilang parameter jenis, dipisahkan dengan , . 🎜
  • 🎜Kekangan: 🎜Anda boleh mengenakan kekangan pada parameter jenis menggunakan kata kunci class, typename dan typename.... 🎜🎜🎜Dengan menggunakan parameter jenis dengan betul, anda boleh mencipta templat fungsi C++ yang cekap dan serba boleh. 🎜

Atas ialah kandungan terperinci Petua untuk menggunakan parameter jenis dalam templat fungsi C++?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!