1、使用auto从初始化表达式中推断出变量的数据类型,可以大大简化编程工作,特别是对于一些类型冗长复杂的变量。
例:
#include <iostream>
#include <vector>
using namespace std;
template<class T, class U>
void add(T t, U u)
{
auto s = t + u;
cout << "type of t + u is " << typeid(s).name() << endl;
}
int main()
{
// 简单自动类型推断
auto a = 123;
cout << "type of a is " << typeid(a).name() << endl;
auto s("fred");
cout << "type of s is " << typeid(s).name() << endl;
// 冗长的类型说明(如迭代器)
vector<int> vec;
auto iter = vec.begin();
cout << "type of iter is " << typeid(iter).name() << endl;
// 使用模板技术时,如果某个变量的类型依赖于模板参数,使用auto确定变量类型
add(101, 1.1);
}
参考文章:C++11特性
2、malloc和free是C++/C库函数,new和delete是C++运算符
参考文章:new与malloc的10点区别
3、printf是库函数,cout是对象
参考文章:C中的printf和cout有什么区别