美文网首页
什么时候使用auto关键字

什么时候使用auto关键字

作者: 陈成_Adam | 来源:发表于2021-02-10 00:20 被阅读0次

auto关键字可以自动推导数据类型,主要目的是提升代码可读性和可维护性。例如:

std::vector<int>::iterator I = my_container.begin();

// transforms to:
auto I = my_container.begin();

然而,有的情形不适合使用auto关键字,例如:

int val = 42;
InfoStruct &I = SomeObject.getInfo();

// Should not become:
auto val = 42;
auto &I = SomeObject.getInfo();

上面的代码的可读性差。那什么情况下推荐使用auto关键字?

Iterators

迭代器(Iterator)通常比较长,并且使用频率高,因此使用auto比较合适。

for (std::vector<int>::iterator I = my_container.begin(),
                                E = my_container.end();
     I != E; ++I) {
}

// becomes
for (auto I = my_container.begin(), E = my_container.end(); I != E; ++I) {
}

New

使用new关键字创建对象实例时,对象名需要写两次,此时使用auto比较合适。

TypeName *my_pointer = new TypeName(my_param);

// becomes
auto *my_pointer = new TypeName(my_param);

Cast

强制类型转换时,数据类型需要写两次,此时使用auto比较合适。

TypeName *my_pointer = static_cast<TypeName>(my_param);

// becomes
auto *my_pointer = static_cast<TypeName>(my_param);

相关文章

  • 什么时候使用auto关键字

    auto关键字可以自动推导数据类型,主要目的是提升代码可读性和可维护性。例如: 然而,有的情形不适合使用auto关...

  • __auto_Type 、__kindof 、id

    三个关键字 __auto_Type 、__kindof 、id 使用 id : 类型 不多说,基础。不过缺点如下:...

  • std::auto (c++11)

    使用auto关键字定义变量时,编译器会自动根据上下文情况,确定auto变量的真正类型,在写for循环和stl迭代类...

  • IOS-Block

    Block初探 blcok的分类 不同关键字修饰的变量auto和static在OC中有个默认的关键字auto,在我...

  • C++11/14/17

    关键字:auto, nullptr, explicit, final, override, constexpr,...

  • 5_变量属性

    关键词:C语言的变量属性、auto关键字、 register关键字、 static关键字、extern关键字 1....

  • c++11&14-常用属性专题

    1. 常用属性 1.1 auto关键字及其用法 auto关键字可以用于定义变量和函数的返回值(包括声明和定义都可以...

  • 关键字 Auto

    Auto 关键字作用 在阅读了《深入应用C++11 代码优化与工程级应用》的第一张第一节之后,对auto关键字的认...

  • c++11/14/17新特性(1)

    2.1auto关键字 auto expr; 当expr包含cv描述符的时候,比如const int a = 1;a...

  • 【Swift 3 && C++11】<第一

    | Swift | C++:-:|:-:|:-:关键字 | let / var | const auto / au...

网友评论

      本文标题:什么时候使用auto关键字

      本文链接:https://www.haomeiwen.com/subject/ivrhxltx.html