#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();
}
C++:auto关键字
最新推荐文章于 2024-10-04 22:43:57 发布
本文介绍了C++中auto关键字的使用,讨论了如何利用它进行类型推导,以及在std::unordered_map和容器迭代中的应用。例子展示了如何处理字符串和设备管理器的数据结构。
摘要由CSDN通过智能技术生成