在 C++ 中,類型推導(dǎo)主要通過 auto
關(guān)鍵字和decltype關(guān)鍵字實(shí)現(xiàn)。使用這些關(guān)鍵字可以簡化代碼,提高代碼的可讀性和可維護(hù)性。
auto
關(guān)鍵字auto
關(guān)鍵字可以讓編譯器自動(dòng)推導(dǎo)變量的類型。這樣可以避免顯式指定變量類型,使代碼更簡潔。例如:
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用 auto 關(guān)鍵字自動(dòng)推導(dǎo) vec 的類型為 std::vector<int>
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
decltype
關(guān)鍵字decltype
關(guān)鍵字用于推導(dǎo)表達(dá)式的類型。它可以與 auto
關(guān)鍵字結(jié)合使用,或者單獨(dú)使用。例如:
int a = 1;
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用 decltype 關(guān)鍵字推導(dǎo) a 的類型為 int
decltype(a) b = 2;
// 使用 decltype(vec) 關(guān)鍵字推導(dǎo) vec 的類型為 std::vector<int>
for (decltype(vec.begin()) it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
通過使用 auto
和 decltype
關(guān)鍵字,可以簡化代碼,提高代碼的可讀性和可維護(hù)性。