首页 > 其他分享 >auto关键字

auto关键字

时间:2024-07-14 16:42:21浏览次数:13  
标签:std 函数 int auto 关键字 strings cout

作用:
能自动推断出是什么数据类型
代码示例:

auto name()//能判断出返回值时字符串类
return std::string("hhh");

弊端:
对变量类型不明确,可能会破坏依赖特定类型的代码
比如字符串类的.strlen()
什么时候用:
当类型过长时

int main()
{
  std::vector<std::string> strings;
strings.push_back("Apple");
strings.push_back("range");

for(std::vector<std::strinh>::terator it=strings.begin();it!=string.end();it++)
//替换成for(auto it=strings.begin();it!=string.end();it++)
}

函数指针:

是什么:
函数复制给变量
代码示例:
void Hello()
{
std::cout<< "hello" << std::endl;
}
int main()
{
void (*function)();
auto tuction=Hello;
fuction();
}

lambda

是什么:
定义一种匿名函数的方法,这种方式创建的函数不需要实际创建一个函数,像是个一次性的函数展示下需要运行的代码;
用法:
设置函数指针指向函数的任何地方都可以将其设置成lambda;
代码示例:

void ForEach(const std::vector<int>& values,void (*func)(int))
{
for(int value:values)
func(value);
}
遍历数组调用
int main()
{
std::vector<int> values{1,5,4,2,3};
}

ForEach(value3[](int value)
{
std::cout<<"value"<<value<<std::endl;
}
例2:
将一个函数传递给一个api以使在未来某个时间,可以为我们调用这个函数,告诉它当我们到了像调用一个函数时,我们哟调用哪个函数
auto lambda=[](int value)
{
std::cout<< "saf"<< std::endl;
}
[a,&b]:a作为拷贝或值被捕获,b可以作为引用被捕获
[&]:捕获所有变量通过引用的途径
[=]:捕获所有 通过值或拷贝
[]什么都不捕获
例子:

std::vector<int>values={1,5,4,2,3};
int a=5;
auto ;ambda=[=](int values){std::cout<<a<<std::endl;}
ForEach(values,lambda);

标签:std,函数,int,auto,关键字,strings,cout
From: https://www.cnblogs.com/WZline/p/18301722

相关文章

  • Python+wxauto=微信自动化?
    Python+wxauto=微信自动化?一、wxauto库简介1.什么是wxauto库        wxauto是一个基于UIAutomation的开源Python微信自动化库。它旨在帮助用户通过编写Python脚本,轻松实现对微信客户端的自动化操作,从而提升效率并满足个性化需求。这一工具的出现,为经常需要在电脑......
  • 关键字
    this调用当前类的方法;this()可以调用当前类的构造方法,但必须放在构造方法的第一行;this可以作为参数在方法中传递;this可以作为参数在构造方法中传递;this可以作为方法的返回值,返回当前类的对象。super指向父类对象;调用父类的方法;super()可以调用父类的构造方法。......
  • Java基础,final关键字,权限修饰符,内部类,抽象类和接口作为方法的参数和返回值,System类,Obj
    一.final关键字1.final:不可以改变,可以用来修饰类,方法和变量类:被修饰的类,不能被继承方法:被修饰的方法,不能被重写变量:被修饰的变量,不能被重新赋值2.格式:    修饰类:finalclass类名{}    修饰方法:publicfinal返回值类型方法名(){}    修饰变量:fin......
  • Llama2大语言模型在云GPU(AutoDL)上进行训练微调(自定义数据集)
    Llama2是Meta开源的语言大模型,它经过训练的数据集包含2万亿个token。相比Llama,Llama2的上下文长度已经从2048扩展到4096,这使其能够理解和生成更长的文本。Llama2包括了多个模型,分别是7B、13B和70B的模型。一、准备工作在autodl平台租用实例(直接搜索,有许多租用教程,建议租......
  • AutoKG:为语言模型打造高效自动化知识图谱
    在人工智能领域,大型语言模型(LLMs)如BERT、RoBERTa、T5和PaLM等,以其在自然语言处理(NLP)任务中的卓越性能而著称。然而,这些模型在提供信息时可能会产生“幻觉”,即提供看似合理但与事实不符的预测。同时它们的“黑箱”特性也影响了模型的可解释性和准确性。为了解决这些问题,研究者们......
  • Java-static关键字详解
    目录1.static关键字的用途和作用用途作用2.在类中使用static修饰成员变量、方法和代码块修饰成员变量修饰方法修饰代码块修饰内部类3.常见误区误区1:静态变量在每个实例中都有一份误区2:静态方法可以访问实例变量和实例方法误区3:静态代码块在每次创建对......
  • C语言中关键字volatile
     1:什么是volatile?    在C语言中,volatile关键字同样用于修饰变量,volatile告诉编译器该变量的值可能会在程序的控制之外被改变,因此编译器在优化代码时不能对该变量的访问进行优化,比如不能将其缓存到寄存器中,而是每次访问时都需要直接从内存中读取其值。2:变量的访问......
  • SMPLify论文阅读:Keep it SMPL: Automatic Estimation of 3D Human Pose and Shape fro
    基本信息时间:2016会议/期刊:ECCV论文网址:https://arxiv.org/pdf/1607.08128一作单位:MaxPlanckInstituteforIntelligentSystems文章内容关键词:3D身体形状,人体姿态,卷积神经网络文章类型:算法/基于优化的方法硬件/算法类型:SMPL/HMR核心思想:从单张图......
  • unplugin-auto-import 简介
    unplugin-auto-import简介unplugin-auto-import是一个用于自动导入常用函数和变量的Vite和Webpack插件。它可以帮助开发者减少手动导入的麻烦,提高开发效率。安装使用npm或yarn安装:npminstall-Dunplugin-auto-import或yarnadd-Dunplugin-auto-import配置......
  • Java中标识符和关键字
    1.标识符publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello,world");}}上述代码中在publicclass后面的HelloWorld称为类名,main称为方法名,也可以将其称为标识符,即:在程序中由用户给类名、方法名或者变量所取的名字。【......