首页 > 其他分享 >auto的使用场景

auto的使用场景

时间:2024-08-30 16:22:20浏览次数:12  
标签:场景 return cout int auto a1 stoi 使用

auto的两面性

合理使用auto 不仅可以减少代码量, 也会大大提高代码的可读性.
但是事情总有它的两面性
如果滥用auto, 则会让代码失去可读性

推荐写法

这里推荐两种情况下使用auto

  • 一眼就能看出声明变量的初始化类型的时候

    比如迭代器的循环, 用例如下

#include <iostream>
#include <map>
using namespace std;

void test1()
{
	map<string, int> stoi;
	stoi["123"] = 1;
	stoi["456"] = 2;
	stoi["789"] = 3;

	// map<sting, int>::const_iterator 的类型, 直接写为auto
	// 大大减少了代码量
	for (auto i = stoi.begin(); i != stoi.end(); i++)
	{
		cout << i->first << ";" << i->second << endl;
	}

	// pair<string, int>& it : stoi
	for (auto& i : stoi)
	{
		cout << i.first << ':' << i.second << endl;
	}
}

int main()
{
	test1();
	return 0;
}

执行结果
在这里插入图片描述

  • 对于复杂的类型
    比如lambda表达式等, 用例如下
void test2()
{
	// 用函数指针接收, 写法非常麻烦
	int(*p)(int, int) = [](int a1, int a2) {return a1 + a2; };
	cout << p(1, 2) << endl;;
	// 使用auto大大减少了代码量
	auto p2 = [](int a1, int a2) {return a1 + a2; };
	cout << p(1, 2) << endl;
	cout << typeid(p).name() << endl;
	cout << typeid(p2).name() << endl;
}
int main()
{
	test2();
	return 0;
}

执行结果
在这里插入图片描述

标签:场景,return,cout,int,auto,a1,stoi,使用
From: https://blog.csdn.net/qq_40666620/article/details/141721020

相关文章

  • WPF automatically fill WrapPanel
    //xaml<Windowx:Class="WpfApp309.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • vue使用html2canvas将页面dom生成图片,解决页面中带有图片导出
    安装npm installhtml2canvas引入importhtml2canvas from 'html2canvas'使用this.$refs.canvasToPic是div的dom,只要在这个div中的区域都可以生成图片1this.$nextTick(()=>{2html2canvas(this.$refs.canvasToPic,{useCORS:true,logging:true}).......
  • 使用Opatch命令报错:Java (1.7) could not be located. OPatch cannot proceed!
    问题描述[oracle@servernamedb]$OPatch/opatchversionOPatch/opatch:line839:[:toomanyargumentsOPatch/opatch:line839:[:toomanyargumentsJava(1.7)couldnotbelocated.OPatchcannotproceed!OPatchreturnswitherrorcode=1解决方案删除OPatch目录......
  • 软件解决显卡欺骗器,HDMI欺骗器,如何使用ToDesk免费功能
    大家遇到电脑没有显示屏,或者显示屏的显卡太老,无法正常打开时,常常会给自己备上一个显卡欺骗器和HDMI欺骗器,虽说它们都能模拟显示屏正常使用环境,但这种方法通常需要额外的硬件支持,对于急用的小伙伴来说,这个方法很难快速解决显示屏难题。小社长最近发现ToDesk远程控制软件的虚拟屏......
  • C#中通用返回对象Result<T>(定义及使用)
     1.定义返回对象//Result对象是一种显式表示成功结果或失败的类型//方法可以返回这个类,而不是引发异常。如果操作失败,则Result对象将包含错误消息或代码,但不包含异常publicclassResult<T>{publicTValue{get;}publicstringEr......
  • 【Unity踩坑记录】使用Rigidbody模拟跳跃时,刚体会突然上升
    最初的写法privatevoidFixedUpdate(){if(!isGrounded){return;}floatrawHorizontal=Input.GetAxis("Horizontal");floatrawVertical=Input.GetAxis("Vertical");Vector3localDirection=new(rawHorizon......
  • Redis高可用方案:使用Keepalived实现主备双活
    注意:请确保已经安装Redis和keepalived,本文不在介绍如何安装。1、使用版本说明Redis版本:5.0.2Keepalived版本:1.3.5Linux版本:Centos7.9查看Redis版本:/usr/local/redis/bin/redis-cli-v查看Keepalived版本信息:rpm-qa|grepkeepalived或者keepalived-v2、功能实......
  • Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储
    Clobotics是一家将计算机视觉和机器学习技术应用于风电以及零售行业的企业。在风电行业,Clobotics利用无人机对风力发电机叶片进行检查,显著降低了对人工作业的依赖。在零售领域,公司通过分析捕获的包装商品图像来提供基于实时数据的洞察,以增加销售额并减少运营成本。存储方面,Clob......
  • 5G RedCap工业网关的应用场景与优势
    在工业物联网领域,5GRedCap工业网关凭借其低功耗、低成本和高性能的特点,广泛应用于各种工业设备、传感器和控制系统之间的高效连接。不仅支持实时数据采集传输,还能大幅降低部署成本,提升数据传输的可靠性和效率,从而提高生产效率和产品质量。 物通博联推出的5GRedCap工业网关是一款......
  • python使用 pyshark 库捕获数据包,附示例
    以下为您提供使用Python的pcap库捕获网络数据包的示例及相关信息:在Python中,可以使用pcap库来实现网络数据包的捕获。例如:importpcap#创建pcap实例pc=pcap.pcap()#设置过滤条件,例如捕获TCP端口为80的数据包pc.setfilter('tcpport80')#开始抓......