美文网首页
C++ 11 语言特性介绍

C++ 11 语言特性介绍

作者: 特立独行的佩奇 | 来源:发表于2022-09-28 22:07 被阅读0次

C++ 11 语言特性

新特性 说明
nullptr,auto NA
for-each 区间迭代
shared_ptr unique_ptr 智能指针
condtion_variable,mutex,lock 语言级线程支持
map,set,multimap,multiset 有序容器
unordered_map,unordered_set,unordered_multiset, unordered_multimap 无序容器
list,forward_list 链表
queu,stack 队列,栈
array,vector 容器
TBD lamda表达式

nullptr介绍

nullptr 的出现是为了代替NULL,比如下面的两个重载的函数

void demoFunction(int t) {
    cout << "Run para as int" << endl;
}

void demoFunction(char* t) {
    cout << "Run para as char*" << endl;
}

如果调用demoFunction(NULL),某些编译将NULL定义为(void)0,这就会产生歧义;
如果调用 demoFunction(nullptr) 就一定会调用到 demoFunction(char
t)

auto类型推导,区间迭代

auto 可以推导任意基本类型,还可以作为函数的返回值;但是下面场景不能使用auto

  • 函数的参数不能使用auto
  • auto 不能推导出数组类型
//error auto Add(auto a, auto b)
auto Add(uint16_t a, uint16_t b) {
    return a + b;
}

auto index = 8;
auto str = "HelloWorld";
auto ret = Add(1, 2);
    
cout << "index:" << index << " str: " << str << " ret:" << ret << endl;
//auto array[] = {1,2,3,4} // error auto cannot as array

区间迭代可以用于容器类型,数组类型的遍历操作;可以大幅度简化代码
示例代码

    //basic usage
    for (uint8_t i = 0; i < sizeof(array)/sizeof(uint16_t); i++) {
        cout << "array[" << static_cast<int>(i) << "] = " << array[i] << endl;
    }
    for (auto t : array) {
        cout << t << endl;
    }
    for (auto &t : array) {
        cout << t << endl;
    }

TBD

相关文章

  • C++ 11 语言特性介绍

    C++ 11 语言特性 新特性说明nullptr,autoNAfor-each区间迭代shared_ptr uni...

  • C++ 11常用特性

    C++ 11常用特性(转)

  • C++ 面向对象

    C++ 与 C语言 区别 C++ 面向对象、标准特性; C 面向过程,函数+结构体 C++可以运行C语言,反之就不...

  • 我理解的runtime

    OC Runtime 对OC的理解与特性 OC是一门面向对象语言,既有静态语言的特性(C++),又有动态语言的特性...

  • 面试题知识点系列之Java语言特性

    特性综述: Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面...

  • 面试总结

    OC的理解与特性 . OC是一门面向对象的语言,三大特性:封装 继承 多态。静态语言特性(C++),动态语言的效率...

  • Objective-C的理解与特性

    一门面向对象的语言 面向对象的语言特性:封装、继承、多态 它既具有静态语言的特性(如C++) 又有动态语言的效率(...

  • java 垃圾回收机制

    垃圾回收机制是java语言的特性之一,java 是C++语言之后 诞生的语言,垃圾回收机制就相当于解决了C++语言...

  • oc语言的特性 动态类型识别,动态绑定,动态加载

    OC做为一门面向对象语言,自然具有面向对象的语言特性,如封装、继承、多态。他具有静态语言的特性(如C++),又有动...

  • oc的动态特性

    OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装、继承、多态。它既具有静态语言的特性(如C++),又有...

网友评论

      本文标题:C++ 11 语言特性介绍

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