c++ auto可推断数据类型

auto 可推断数据类型,和c#/go的var,用法差不多,在编译的时候自动识别数据类型.

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
	//auto 自动推断数据类型
	auto num = 10;
	auto num1 = 1.1;

	cout << typeid(num).name() << endl;   //获取的数据类型:int
	cout << typeid(num1).name() << endl;  //获取的数据类型:double
	
	cin.get();
	return 0;
}

在遍历的使用,使用auto

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9 ,10 };
	for (auto i : arr)    //自动识别数据类型,在遍历的时候,拷贝的是值
	{
		cout << i << " ";
	}
	cout << endl;

	cout << "遍历修改arr数组的元素: ";
	for (auto &i : arr)  //要修改原值的话,可以使用auto &i 
	{
		i += 1;
		cout << i << " ";
	}
	cout << endl;

	cout << "遍历打印arr数组的元素: ";
	for (auto i : arr)
	{
		cout << i << " ";
	}
	cout << endl;

	cin.get();
	return 0;
}

在模板的返回值使用auto类型

#include <iostream>

using namespace std;

template <class T1, class T2>
auto add(T1 t1, T2 t2)
{
	return t1 + t2;
}

int main(int argc, char *argv[])
{
	cout << add(1, 1.1) << endl;  //返回的是double类型
	
	cin.get();
	return 0;
}
秋风 2017-06-27