在C++11中引入了auto
關鍵字,用于自動推導變量的類型。其語法形式為auto 變量名 = 表達式;
,其中表達式
的類型將被自動推導為變量名
的類型。
auto
的使用可以簡化代碼,避免重復聲明變量類型,并且可以處理復雜的類型推導,例如使用迭代器遍歷容器中的元素或者函數返回值類型不確定的情況。
下面是一些示例代碼來演示auto
的用法:
// 使用auto進行變量類型推導
auto num = 10; // 推導為int類型
auto name = "Alice"; // 推導為const char*類型
auto result = 3.14 + 2; // 推導為double類型
// 使用auto遍歷容器中的元素
std::vector<int> numbers = {1, 2, 3, 4, 5};
for(auto it = numbers.begin(); it != numbers.end(); ++it) {
std::cout << *it << " ";
}
// 輸出:1 2 3 4 5
// 使用auto推導函數返回值類型
auto add(int a, int b) -> int {
return a + b;
}
auto divide(double a, double b) -> decltype(a / b) {
return a / b;
}
需要注意的是,auto
只能在定義變量時使用,無法用于函數參數、類的成員變量等地方。并且在使用auto
推導變量類型時,需要確保表達式的類型是明確的,否則編譯器將無法推導出正確的類型。