大連網(wǎng)站建設(shè)方法瀏覽器下載安裝
2023年9月9日,周六下午
這個(gè)還是挺難學(xué)的,我學(xué)了好幾天...
在這里我會(huì)舉大量的示例程序,這樣可以有一個(gè)更好的理解,
不定期更新。
目錄
推薦文章:
示例程序一:拼接字符串
示例程序二:求整數(shù)和
示例程序三:輸出一串整數(shù)
推薦文章:
這里有一些不錯(cuò)的相關(guān)文章?
Parameter pack(since C++11) - cppreference.com
Variadic function templates in C++ - GeeksforGeeks
Variadic templates in C++ - Eli Bendersky's website
在谷歌搜索“Variadic Template”就可以找到更多這樣的文章
示例程序一:拼接字符串
#include <iostream>
#include <string>
using namespace std;template<typename... Args>
string concatenate(Args... args) {string result;for (const auto& arg : {args...}) {result += arg;}return result;
}int main() {cout << concatenate("Hello", " ", "world", "!") << endl; // 輸出:Hello world!return 0;
}
示例程序二:求整數(shù)和
#include <iostream>
using namespace std;template<typename... Args>
int sum(Args... args){int sum=0;for(const int& arg:{args...})sum+=arg;return sum;
}int main() {cout <<sum(1,2,3,4,5,6,7,8,9,10) << endl; // 輸出:55return 0;
}
示例程序三:輸出一串整數(shù)
示例程序一和二是通過遍歷的方式,而這個(gè)示例程序是通過遞歸的方式。
使用遞歸的方式時(shí)要注意,遞歸到最后時(shí)函數(shù)的參數(shù)是空的,
所以要準(zhǔn)備額外準(zhǔn)備好一個(gè)函數(shù)來處理這種情況。
#include <iostream>
using namespace std;void print()
{cout << "最后一個(gè)元素"<<endl;
}template <typename T, typename... Args>
void print(T first, Args... args)
{cout << first << endl;print(args...);
}int main()
{print(1, 2, 3,4,5,6,7);return 0;
}