C++ 11新增了两个推导关键词,auto & decltype

1.区别

auto:用于推导变量类型;

decltype: 用于推导表达式或者函数返回值

2.直接上代码

intmain()
{
    conststd::vector<);
    autoa = v[];        // a 的类型是 int
    decltype(v[]) b = ; // b 的类型是 const int&, 因为函数的返回类型是
                          // std::vector<int>::operator[](size_type) const
    autoc = ;           // c 的类型是 int
    autod = c;           // d 的类型是 int
    decltype(c) e;        // e 的类型是 int, 因为 c 的类型是int
    decltype((c)) f = c;  // f 的类型是 int&, 因为 (c) 是左值
    decltype() g;        // g 的类型是 int, 因为 0 是右值
}

3.auto的最主要用处是STL中的迭代子类型,使得代码简介;

 使用前:
     std::map<std::string, std::vector<int>> map;
     std::map<std::string, std::vector<int>>::iterator it;
     for (it = map.begin(); it != map.end(); ++it)
     {
     }

 使用后:
     std::map<std::string, std::vector<int>> map;
     for(auto it = begin(map); it != end(map); ++it)
     {
     }
     

4.扩展

获取auto的类型,使用typeid; 
#include <typeinfo>
auto i = 10;
cout<<typeid(i).name()<<endl;

最新文章

  1. C#委托与事件
  2. java的布尔运算符和位运算符
  3. Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt
  4. Query意图分析:记一次完整的机器学习过程(scikit learn library学习笔记)
  5. json对象与json字符串对象格式
  6. Qt之JSON生成与解析
  7. HttpServlet详解
  8. 玩耍Hibernate系列(二)--基础知识
  9. UVa 1640 (计数) The Counting Problem
  10. Java之hashSet实现引用类型的禁止重复功能
  11. *[topcoder]AstronomicalRecords
  12. acrobat GetSize 返回 x,y 值单位
  13. Netty高性能之道
  14. h.264 mvp求解过程
  15. MATLAB快速注释方法
  16. Invalid bound statement (not found): com.shizongger.chapter2.mapper.UserMapper.insertUser 解决方案
  17. FFmpeg源代码简单分析:avformat_find_stream_info()
  18. 2018-2019-2 网络对抗技术 20165316 Exp5 MSF基础应用
  19. event.keyCode用法及列表
  20. How to mount HFS EFI on macOS

热门文章

  1. 网络IPC:套接字之数据传输
  2. Jquery实现文本框获取焦点清空内容,失去焦点重新获得内容的公共函数
  3. mysql主从复制 主从配置(windows系统上)
  4. Linux中/usr与/var目录详解
  5. Android获取网页上的图片的代码
  6. 安装PIL库时提示python未注册错误(自定义python安装路径)
  7. linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录
  8. Redis缓存、MemCached和.Net内部缓存的切换使用
  9. VS2013 支持python和nodejs
  10. 强大的JQuery(一)--基础篇