当前位置: 首页 > news >正文

C++学习笔记 24 auto

一、auto

  1. 自动类型推导 (个人思考:应该可用于多态的场景)
  2. 二、C++11 尾置类型占位符 (trailing return type)
  3. 别名简化长类型,auto简化别名
  4. 拓展:尾置类型结合 decltype 使用


    示例代码:
#include<iostream>
#include<vector>
#include<unordered_map>//const char* getName() {
//std::string getName() {
//C++ 11 尾置返回类型(trailing return type)
//其中 auto 是一个占位符,函数名后 -> 紧跟的 const char* 才是真正的返回类型。
auto getName() -> const char* {return "Cherno";
}//基础使用,自动识别类型
void testAuto() {int a = 10;auto b = a;auto c = 5.0f;auto d = 5.0;auto e = 5L;short f = 9;auto g = f;auto h = "Cherno";auto i = 'h';//硬币的两面性,方便,灵活,但也可能引申出使用的问题auto name = getName();std::cout << name << std::endl;
}//简化iterator繁长、冗余类型名称的使用
void testAuto2() {std::vector<std::string> strings;strings.reserve(2);strings.emplace_back("Hello");strings.emplace_back("World");//for (std::vector<std::string>::iterator it = strings.begin(); it != strings.end(); it++) {//用auto简写 长变量	for (auto it = strings.begin(); it != strings.end(); it++) {std::cout << *it << std::endl;}
}class Device {};
class DeviceManager {
private:std::unordered_map<std::string, std::vector<Device*>> m_Devices;
public:std::unordered_map<std::string, std::vector<Device*>> GetDevices() {return m_Devices;}
};
//自定义长类型名称的简化
void testAuto3() {DeviceManager dm;//1. 元使用std::unordered_map<std::string, std::vector<Device*>> diveceMap = dm.GetDevices();//2.1 别名:新版本//using DeviceMap = std::unordered_map<std::string, std::vector<Device*>>;//2.2 别名:旧版本typedef std::unordered_map<std::string, std::vector<Device*>> DeviceMap;const DeviceMap& deviceMap2 = dm.GetDevices();//3. auto//一般来讲,基本上是在类型比较庞大,而且出于某种原因不想使用类型定义(例如:为了简化类型而创建别名)的情况才使用autoconst auto& deviceMap3 = dm.GetDevices();
}int main() {testAuto();testAuto2();std::cin.get();
}
http://www.jsqmd.com/news/112254/

相关文章:

  • Excel处理控件Aspose.Cells教程:使用C#在Excel中创建旭日图
  • 2025年年终中国海参品牌深度解析与推荐指南 - 品牌推荐
  • 2025年十大Starlink星链配件源头工厂推荐 - mypinpai
  • 2025年星链连接线优质厂家TOP5推荐,靠谱厂商与生产厂全解析 - mypinpai
  • 2025年门窗行业品牌年度排名:门窗第一的品牌受客户认可不? - 工业品牌热点
  • 2025年年终智能客服机器人服务商推荐:基于权威行业报告与效能验证的5家高可靠性服务商深度解析 - 品牌推荐
  • 2025年北京十大老房翻新公司排行榜,专业老房翻新公司新测评推荐 - 工业品牌热点
  • 基于MATLAB的木材图像去噪算法实现
  • 【赵渝强老师】Docker三剑客
  • 2025年玻璃钢耐腐蚀弯头直销厂家权威推荐榜单:玻璃钢弯头/FRP弯头/玻璃钢90度弯头源头厂家精选 - 品牌推荐官
  • 随身WiFi 品牌怎么选?飞猫随身WiFi推荐与选购指南:性价比、信号稳定、售后保障一次讲透 - AIEO
  • 2025年传动零部件电商平台推荐:CU轴承靠谱供应商有哪些? - 工业推荐榜
  • 2025年FAG轴承优质供应商排行榜,轴承fag供应商、fag轴承代理新测评推荐 - 工业推荐榜
  • 2025年支付公司综合实力TOP5权威榜单:基于牌照含金量、技术专利与行业解决方案深度解析 - 品牌推荐
  • 2025 GEO优化服务TOP5权威推荐:解析GEO优化和传统SEO区别 - myqiye
  • 2025年AI搜索优化解决方案排名,新测评精选AI搜索技术公司推荐 - myqiye
  • 2025年江苏客流量计数系统公司权威推荐榜单:人流量监测/商场客流统计分析系统/门店进店人数统计提供商精选 - 品牌推荐官
  • 2025 AI搜索公司TOP5权威推荐:AI搜索公司哪家售后好深度测评指南 - myqiye
  • 如何辨别海参品牌的真实力?2025年年终最新市场深度解析及10款可靠品牌推荐! - 品牌推荐
  • 2025年电动卷帘门直销厂家权威推荐榜单:快速卷帘门/伸缩门/自动感应门源头厂家精选 - 品牌推荐官
  • 北京GEO服务商综合评测:专业能力与实战效果深度解析 - 博客万
  • Vaadin 25 正式发布:回归标准Java Web,让企业级开发更简单、更高效
  • 2025年发泡硅胶定制厂家权威推荐榜单:HT-800发泡硅胶/PE保温棉/箱体密封垫源头厂家精选 - 品牌推荐官
  • 2025年12月不锈钢烟囱/污衣井等环保设备厂家综合评析TOP5,聚焦品质与服务适配 - 深度智识库
  • 江西省九江市自建房评测排行榜:六家主流企业实地测评,哪家更靠谱? - 苏木2025
  • 紫外老化试验箱使用说明书哪家全?优质厂家盘点 - 品牌推荐大师
  • 安徽省宿州市自建房设计靠谱机构评测排行榜:5星平台优势及适配人群 - 苏木2025
  • git 提交忽略配置文件,如.env文件
  • 202512月建筑资质代办,水利水电二级资质代办,设计资质代办公司权威推荐:流程透明与售后保障解析! - 品牌鉴赏师
  • 2025年厚壁无缝钢管定做厂家权威推荐榜单:化工专用无缝钢管/API5LPSL2无缝钢管/碳钢无缝管源头厂家精选 - 品牌推荐官