C++11 auto的应用
2021/10/19 11:09:35
本文主要是介绍C++11 auto的应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
auto 自动类型推导
C++11之前和c语言 auto用来声明变量的存储类型(自动变量 栈区) 在编译期间 编译器能够根据变量或者表达式推导七类型 auto 与 const 时: 普通数据在推导时const属性会被抛弃 但是指针或者引用有const时 自动推导时不会抛弃
auto的限制:
1.不能用于函数的参数列表 2.auto不能作用于类的非静态成员 3.auto 关键字不能定义数组 4.auto不能作用于模板参数 auto的应用 1.for循环 for(auto& var:container) { } 为自己写的 2.接收函数返回值 如果调用一个函数返回值类型可能有多个 3.定义容器迭代器 4.用于泛型编程 新式for循环 底层原理是新式迭代器 只要对象支持迭代器的功能 可以用for循环 for(类型)
auto用法
上面举的这个例子很简单,在真正编程的时候也不建议这样来使用auto,直接写出变量的类型更加清晰易懂。下面列举auto关键字的正确用法。
用于代替冗长复杂、变量使用范围专一的变量声明。
想象一下在没有auto的时候,我们操作标准库时经常需要这样:
#include<string> #include<vector> int main() { std::vector<std::string> vs; for (std::vector<std::string>::iterator i = vs.begin(); i != vs.end(); i++) { //... } }
这样看代码写代码实在烦得很。有人可能会说为何不直接使用using namespace std,这样代码可以短一点。
#include<string> #include<vector> int main() { std::vector<std::string> vs; for (auto i = vs.begin(); i != vs.end(); i++) { //.. } }
这篇关于C++11 auto的应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享