首頁  >  文章  >  後端開發  >  C++標準函式庫中模板化的例子?

C++標準函式庫中模板化的例子?

PHPz
PHPz原創
2024-05-09 08:21:01466瀏覽

範本在 C 標準函式庫中的應用:vector 範本:用於儲存和管理可動態成長的元素集合。 map 範本:用於儲存鍵值對,鍵可比較且值可任意型別。自訂模板類別:允許建立可針對不同類型進行參數化的通用程式碼類別。

C++標準函式庫中模板化的例子?

C 標準庫中的模板化範例

C 標準函式庫廣泛使用模板,提供可重複使用、類型安全且高效率的代碼。模板是用於建立通用程式碼的藍圖,它可以針對不同類型進行參數化。

vector 範本

vector 是 C 標準函式庫中常用的範本容器。它是一個動態數組,用於儲存和管理元素集合。

#include <vector>

int main() {
  // 创建一个空 vector
  std::vector<int> v;

  // 添加元素
  v.push_back(1);
  v.push_back(2);
  v.push_back(3);

  // 访问元素
  for (int i = 0; i < v.size(); i++) {
    std::cout << v[i] << " ";
  }

  // 输出:1 2 3
  return 0;
}

在這個範例中,vector 範本被用來儲存 int 類型的資料。我們建立了一個空 vector,然後使用 push_back 方法加入了元素。可以透過 [] 操作符存取元素。

map 範本

map 是另一個範本容器,用於儲存鍵值對。鍵可以是任何可比較的類型,而值可以是任何類型。

#include <map>

int main() {
  // 创建一个空 map
  std::map<std::string, int> m;

  // 添加键值对
  m["Alice"] = 20;
  m["Bob"] = 30;

  // 访问值
  std::cout << m["Alice"] << std::endl;  // 输出:20

  return 0;
}

在這個範例中,map 範本被用來儲存 string 類型的鍵和 int 類型的值。我們建立了一個空 map,然後使用 [] 操作符新增了鍵值對。可以透過鍵名存取值。

自訂模板類別

除了標準庫提供的模板外,我們還可以建立自己的模板類別。例如,我們可以建立一個範本類別來尋找元素的最小值或最大值:

template <typename T>
T find_max(T a, T b) {
  return (a > b) ? a : b;
}

int main() {
  int max_int = find_max(10, 20);  // 返回 20
  double max_double = find_max(3.14, 2.71);  // 返回 3.14

  return 0;
}

在這個範例中,find_max 範本函數被用來尋找兩個元素的最小值或最大值。它可以針對任何可比較的類型進行參數化,如這個範例所示。

以上是C++標準函式庫中模板化的例子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn