c++11新标准的auto用法及其注意事项

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言:其实我并不建议经常使用auto,它在带来便利的同时也带来了麻烦,试想如果整个代码下来全是auto,那么你可能会找不到其数据类型具体是什么,但是我们可以使用auto来代替冗长复杂、变量使用范围专一的变量声明,例如模板的遍历等等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、auto的用法

1.数据初始化
2.函数调用
3.配合模板使用
有关代码如下:

#include<iostream>  
#include<vector>
using namespace std;
double test01() {
	return 1.111;
}
int main()
{
	//1.初始化
	auto a = 0;                       //a的数据类型就是int
	cout << "a=" << a << endl;
	//2.函数调用
	auto b = test01();                //b的数据类型就是double
	cout << "b=" << b << endl;
	//3.模板
	vector<int>v;
	for (int i = 0; i < 10; i++)
		v.push_back(i);
	for (auto i = v.begin(); i != v.end(); i++)//auto默认i就是容器数据类型
		cout << *i << " ";
	cout << endl;
	system("pause");
	return    0;
}

二、注意事项

我们在定义变量时,不用auto可以不用初始化,但使用auto必须初始化

//auto a;      1.定义变量必须初始化

定义自定义类型时,不管是结构体还是类,都不能作为成员变量(初始化也不行)

/*struct test02{
auto a=10;     2.不能作为一个自定义类型的成员变量
};*/

任何类型以及任何种类的数组都不能用auto定义

//auto arr[4]={1,2,3,4};   3.不能是auto数组

实例化可以是数据类型,也可以是类或者自定义类型等等,但不可以是auto

//vector<auto> v;         4.模板实例化类型不能是auto类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

facesin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值