C++:auto关键字

本文介绍了C++中auto关键字的使用,讨论了如何利用它进行类型推导,以及在std::unordered_map和容器迭代中的应用。例子展示了如何处理字符串和设备管理器的数据结构。
摘要由CSDN通过智能技术生成

#include <iostream>
#include <string>
#include <vector>
#include <unordered_map>
//auto关键字 :自动导出数据类型,但是要有推导依据才能自动推导数据类型

/*std::string*/ char*  GetName()
{
    return "qingxiao";
}
class Devic{};

class DevicManger
{
private:
    //m_Devices是string到vector的映射
    std::unordered_map<std::string,std::vector<Devic*>>m_Devices;
public:
    const std::unordered_map<std::string,std::vector<Devic*>>& GetDevices()
    {
        return  m_Devices;
    }
};

int main()
{
    int a=5;
    auto b=a;//可以看到b类型为int
    auto c=6;//通过字面量类型推导变量类型
    
    std::string name=GetName();//常规 std::string 变成char* 直接赋值就可以,因此当函数类型变为char*,依然可以用此方法
    //引用auto
    //auto name=GetName();//好处在于,如果上面的函数类型改变,不需要修改此处
    int d=name.size();//此时,string变成auto会破坏程序因为char*和int转换不来
    std::cout<<name<<std::endl;
    
    
    std::vector<std::string>strings;
    strings.push_back("Apple");
    strings.push_back("Orange");
    
    
    for(/*std::vector<std::string>::iterator*/ auto it=strings.begin();it!=strings.end();it++)
    {
        std::cout<<*it<<std::endl;
    }
    
    
    DevicManger dm;
    auto devices=dm.GetDevices();
    
     
    std::cin.get();
}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值