1.类型推导
C++引入了auto和decltype关键字实现类型推导,通过这两个关键字不仅能方便获取复杂的类型,而且还能简化书写,提高编码效率
C11中auto成为类型指示符
- auto类型推导:auto定义的变量,可以根据初始化的值,在编译时推导出变量名的类型
- auto是一个类型占位符,本身并不是一个类型,所以不可以使用sizeof或typeid
#include <iostream>
#include <map>
#include<string>
using namespace std;
void func_f() {
// 1: auto使用实例, 下面两个声明是等价的。
int j = 0; // Variable j is explicitly type int.
auto k = 0; // Variable k is implicitly type int because 0 is an integer
map<int, string> map_data;
for (int i = 0; i < 10; i++)
{
map_data.insert(pair<int, string>(i, to_string(i)));
}
map<int, string>::iterator iter = map_data.begin();
while (iter != map_data.end())
{
cout << "key: " << iter->first << ", value: " << iter->second << endl;
++iter;
}
auto i = map_data.begin();
for (auto& it : map_data)
{
cout << "key: " << it.first << ", second: " << it.second << endl;
}
}
打印结果