91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

沅陵县| 天气| 永仁县| 垣曲县| 且末县| 虹口区| 二手房| 公安县| 白沙| 丽水市| 永昌县| 内乡县| 渭源县| 石台县| 应城市| 宁陕县| 隆德县| 土默特右旗| 同江市| 泰和县| 临清市| 张家港市| 华容县| 虎林市| 广宗县| 土默特左旗| 永定县| 迁西县| 怀安县| 峨眉山市| 昭通市| 卫辉市| 基隆市| 大悟县| 苗栗市| 利辛县| 小金县| 顺平县| 方正县| 巴青县| 阜平县|