亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++11的initializer_list形參怎么使用

發布時間:2021-11-29 11:49:27 來源:億速云 閱讀:149 作者:iii 欄目:大數據

這篇文章主要講解了“C++11的initializer_list形參怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++11的initializer_list形參怎么使用”吧!

C語言中的可變參數

編程過程中經常會遇到希望函數的參數可變的情況,一個最常見的例子就是神奇的printf函數,它可以根據用戶的需要調整參數的個數。其實我們自己也可以設計可變參數的函數。例如下面的函數就可以根據第一個參數決定輸入參數的個數。

int test(int num, ...)
{
   int i, result = 0;
   va_list parlist;
   va_start(parlist, num); //準備參數列表
   for (i = 0; i < num; i++)
   {
       //取得每個參數,類型由av_arg的第二個參數決定
       printf("%d\n",  va_arg(parlist, int));
   }
   va_end(parlist);//關閉參數列表
   return result;
}

test的后續參數個數由第一個參數number決定。有了這樣的test函數,就可以根據需要決定參數的個數了。下面的代碼都可以正常動作:

test(2, 10, 20);
test(4, 1, 2, 3, 4);

C++11中的可變參數

C++11在標準庫中提供了initializer_list類,用于處理參數數量可變但類型相同的情況。使用initializer_list最常用的方式是通過大括號包圍的值列表對其進行初始化:

initializer_list<int> vlist{9, 8, 7, 6};

除了不能修改vlist中的值以外,可以像一般的list一樣使用。

繼續看下面的函數:

template<typename T>
void output(initializer_list<T> lst)
{
   for(auto &a : lst){
       cout << a << endl;
   }
}

這個函數很簡單,就是輸出list中的內容,它有幾個特點:

  1. 通過模版,auto的使用,是它可以自動適應參數的類型

  2. 通過initializer_list的使用,自動適應參數的個數。

函數弄好以后,怎么使用就可以看心情了。

initializer_list<int> vlist{9, 8, 7, 6};
output(vlist);

output({1, 3, 4, 5});

output({"How", "are", "you", "!"});

感謝各位的閱讀,以上就是“C++11的initializer_list形參怎么使用”的內容了,經過本文的學習后,相信大家對C++11的initializer_list形參怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

金门县| 全南县| 韶山市| 时尚| 高雄市| 宁河县| 达孜县| 新竹县| 宕昌县| 尤溪县| 西乌珠穆沁旗| 罗江县| 连平县| 调兵山市| 都安| 绥中县| 淳化县| 柏乡县| 徐州市| 惠来县| 时尚| 苏尼特左旗| 岳阳县| 田阳县| 正宁县| 云浮市| 全州县| 新蔡县| 龙胜| 遂溪县| 宁波市| 武平县| 高碑店市| 深泽县| 江西省| 平陆县| 班戈县| 吉水县| 丹凤县| 济宁市| 缙云县|