C++ 庫 - <initializer_list>



C++ 中的<initializer_list> 提供了一種方便的方法來使用值列表初始化容器和使用者定義型別。它允許透過啟用使用逗號分隔的元素列表初始化集合來編寫更靈活和可讀的程式碼。

<initializer_list> 是一個輕量級的代理物件,它允許建構函式接受值列表而無需顯式指定型別。在使用標準庫容器(如 vector、set 和 map)時使用它。

包含 <initializer_list> 標頭檔案

要在 C++ 程式中包含 <initializer_list> 標頭檔案,可以使用以下語法。

#include <initializer_list>

<initializer_list> 標頭檔案的函式

以下是 <initializer_list> 標頭檔案中所有函式的列表。

序號 函式及描述
1 size

它返回 initializer_list 中元素的數量。

2 begin

它返回指向第一個元素的指標。

3 end

它返回指向最後一個元素之後位置的指標。

從初始化列表中新增值

在下面的示例中,我們將計算 initializer_list 中元素的總和。

#include <iostream>
#include <initializer_list>
int a(std::initializer_list < int > list) {
   int b = 0;
   for (auto x: list) {
      b += x;
   }
   return b;
}
int main() {
   int y = a({2,4,6,10});
   std::cout << "Result : " << y << std::endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

Result : 22

組合兩個初始化列表

考慮下面的例子,我們將組合來自多個初始化列表的值。

#include <iostream>
#include <initializer_list>
#include <vector>
std::vector < int > a(std::initializer_list < int > x, std::initializer_list < int > y) {
   std::vector < int > b;
   b.insert(b.end(), x);
   b.insert(b.end(), y);
   return b;
}
int main() {
   auto b = a({1,3,5}, {2,4,6});
   for (auto value: b) {
      std::cout << value << " ";
   }
   std::cout << std::endl;
   return 0;
}

輸出

以下是上述程式碼的輸出:

1 3 5 2 4 6
廣告