1. 程式人生 > >C++建立不確定形引數量函式的方法

C++建立不確定形引數量函式的方法

一直有思考C++是否可以創捷形引數目不確定的函式,結果看C++primer的時候發現還真有。


initializer_list形參

如果函式的實引數量未知但是全部實參的型別都相同,我們可以使用initializer_list型別的實參。

話不多說先上示例:

int sum(std::initializer_list<int> theList) {
    int result = 0;
    for (const auto x:theList) {
        result += x;
    }
    return result;
}

int main() {
    std::initializer_list<int> theList{1, 2, 3, 4, 5};

    std::cout << sum(theList) << std::endl;

    return 0;
}

但是注意一點!initializer_list並沒有過載"[]"符號,所以它不能使用[index]去訪問元素,但是initializer_list提供了begin(),end(),以及size()方法,可以使用指標訪問,也可以使用範圍for迴圈訪問!

等到我讀到不同型別該如何處理的時候,再來更新這篇部落格!