關於任意個數引數的實現方式

2021-10-25 00:18:36 字數 646 閱讀 5965

對於乙個給定的函式而言,引數的個數個型別都是確定的,如果在某些情況下想要是實現引數個數任意應該怎麼處理呢?

分為兩種情況:

引數型別一致

引數型別不定

對於引數型別一致的情況,可以採用initializer_list的方式來實現,示例**如下:

void

print

(std::initializer_list<

int> vals)

std::cout << std::endl;

}print()

;//呼叫此函式

注意一下與普通函式的區別:

void

print

(std::initializer_list<

int> vals)

std::cout << std::endl;

}void

print

(int ia,

int ib)

print(1

,2);

print()

;

對於引數型別不一致的情況,可以採用tuple的方式來實現;除此之外還可以採用…的方式,不過…一般用於模板中,對於一般的函式而言,使用tuple更為方便一些。

Python實現接受任意個數引數的函式

這個功能倒也不是我多麼急需的功能,只是恰好看到了,覺得或許以後會用的到。功能就是實現函式能夠接受不同數目的引數。其實,在c語言中這個功能是熟悉的,雖說實現的形式不太一樣。c語言中的main函式是可以實現類似的功能的,可以通過這種方式實現乙個支援命令列引數的程式。先寫一段python實現相應功能的示範...

c語言函式任意個數引數的實現

一 簡介 c語言在寫函式時,如果不確定要輸入多少引數,標準庫提供了一種方式輸入任意長度引數。二 使用方法 1 新增標頭檔案 include 2 定義 引數上面用 代表任意個引數,省略號之前的那個引數是 int,代表了要傳遞的可變引數的總數 3 訪問 在函式定義中建立乙個 va list 型別變數 使...

Python實現接受任意個數引數的函式方法

這個功能倒也不是我多麼急需的功能,只是恰好看到了,覺nyzfvxeojb得或許以後會用的到。功能就是實現函式能夠接受不同數目的引數。其實,在c語言中這個功能是熟悉的,雖說實現的形式不太一樣。c語言中的main函式是可以實現類似的功能的,可以通過這種方式實現乙個支援命令列引數的程式。先寫一段pytho...