C++11常用特性

作者: wolfaherd | 来源:发表于2022-12-31 10:05 被阅读0次

需要记忆的(面试七剑下天山)

lambda
语言级别线程支持
右值引用
智能指针
常量表达式
无序容器
类型推导

核心语言特性

  • 类型推导(auto/decltype)

  • 类型别名(using/typedef)

  • 长整型(long long)

  • 可变模板(...)

template<class... Types>
struct Tuple {};
 
Tuple<> t0;           // Types contains no arguments
Tuple<int> t1;        // Types contains one argument: int
Tuple<int, float> t2; // Types contains two arguments: int and float
Tuple<0> t3;          // error: 0 is not a type
  • 常量表达式(constexpr)
constexpr int factorial(int n)
{
    return n <= 1 ? 1 : (n * factorial(n - 1));
}

声明可以在编译时计算函数或变量的值

  • 空指针值(nullptr)

  • 右值引用(&&)

  • 统一码字面值

u8"s-char-sequence(optional)"//UTF-8
u"s-char-sequence(optional)" //UTF-16
U"s-char-sequence(optional)"//UTF-32
prefix(optional) R"d-char-sequence(optional)
(r-char-sequence(optional))d-char-sequence(optional)"

const char* s1 = R"foo(
Hello
  World
)foo";
// same as
const char* s2 = "\nHello\n  World\n";  
  • lambda表达式

  • 范围for

std::vector<int> v = {0, 1, 2, 3, 4, 5};
for (const int& i : v)
  std::cout << i << ' ';
  • static_assert

编译期断言检查。

标准库特性

  • array

静态连续数据

  • forward_list

forward_list是一个容器,支持从容器中的任何地方快速插入和删除元素。不支持快速随机访问。它被实现为一个单链表。与std::list相比,当不需要双向迭代时,该容器提供了更有效的空间存储。

  • tuple

异构值集合

  • unordered_map和unordered_set

无序容器。搜索、插入和删除元素的平均时间复杂度为常数。在内部,元素不是按任何特定的顺序排序,而是组织成桶。一个元素被放入哪个存储桶完全取决于它的键的哈希值。具有相同哈希码的键出现在同一个bucket中。这允许快速访问各个元素,因为一旦计算哈希,它就会引用元素所在的桶。unordered_map相对于unordered_set多了个value值。

  • atomic

如果一个线程写入一个atomic对象,而另一个线程从中读取,则该行为定义良好

  • condition_variable

条件变量,与std::mutex一起使用,以促进线程间通信。

  • future

类模板std::future提供了一种访问异步操作结果的机制

  • mutex

线程支持库。提供基本的互斥功能,常结合lock_guard使用。

  • thread

语言级线程支持

相关文章

  • 阿里巴巴面试题基础篇 C++11

    ● 请问C++11有哪些新特性? 参考回答: C++11 最常用的新特性如下: auto关键字:编译器可以根据初始...

  • c++11特性

    c++11特性 本次笔记记录一些常用的c++11特性,以方便查看。 1. 方便的列表快速初始化 2. 方便的aut...

  • C++11常用特性

    需要记忆的(面试七剑下天山) lambda语言级别线程支持右值引用智能指针常量表达式无序容器类型推导 核心语言特性...

  • Dev中使用c++11中的函数

    如果想要在Dev-Cpp里面使用C++11特性的函数,比如刷算法中常用的stoi、to_string、unorde...

  • C++11常用新特性

    initializer_list auto和decltype (1)初始化区别 auto要求必须初始化,因为aut...

  • 深入理解C++11 第一章

    C++11主要的新语言特性

  • 《深入理解 C++11 :C++11 新特性解析与应用》国内首本

    深入理解 C++11 :C++11 新特性解析与应用 公众号回复“41532”获取下载地址 《深入理解C++11:...

  • 可怕的C++

    【C++11】新特性——引入nullprt huang_xw

  • C++11 最常用的特性

    1. 序列for循环 Range-based for loops 这是不需要多说,很多语言都有的特性,可以方便的进...

  • C++11/14/17新特性

    C++11/14/17常用特性 关键字 auto 让编译器根据上下文情况,确定auto变量的真正类型,可以作为函数...

网友评论

    本文标题:C++11常用特性

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