C++03/98有什么你不习惯或不喜欢的用法?C++11有哪些你使用到的新特性?

  1. 没有自动类型推断,需要显式指定变量类型。
  2. 没有移动语义和右值引用,导致代码效率不高。
  3. 没有nullptr关键字,需要使用0或者NULL来表示空指针。
  4. 头文件和源文件需要手动包含和链接,容易出现重复定义和依赖问题。
  5. 没有标准库容器的emplace和emplace_back函数,导致构造和插入元素时效率不高。

而C++11针对以上问题进行了一系列的改进和扩展,主要包括以下特性:

  1. auto和decltype关键字,能够推导变量和表达式的类型。
  2. 移动语义和右值引用,将右值对象转移所有权,避免了不必要的拷贝和析构。
  3. nullptr关键字,代替0和NULL,能够更准确地表示空指针。
  4. 头文件和源文件的自动包含和链接,避免了重复定义和依赖问题。
  5. 标准库容器的emplace和emplace_back函数,能够直接在容器内构造和插入元素,效率更高。

        除此之外,C++11还新增了Lambda表达式、constexpr函数、variadic templates可变参数模板等特性,扩展了C++的语言能力和表达力。

猜你喜欢

转载自blog.csdn.net/SYC20110120/article/details/133203705