21xrx.com
2024-11-05 16:41:13 Tuesday
登录
文章检索 我的文章 写文章
C++与C++11的区别及变化
2023-06-28 00:28:48 深夜i     --     --
C++11 C++语言 编程 新特性 变化

C++是一种高级编程语言,最初由Bjarne Stroustrup于1983年创建,其目的是为了扩展和改善C语言的能力。而C++11则是对C++语言的一次更新版本,于2011年发布。

C++11在语言本身的特性上做了很多扩展和改进。这些特性涉及到了语言的各个方面,包括语法、标准库、并发支持、Lambda表达式等等。下面将介绍一些重要的区别和变化。

1. 自动类型推断

在C++11中,引入了auto关键字,用于创建变量时自动推断其类型。例如:


auto i = 10;    // 推断为int类型

auto f = 3.14;   // 推断为double类型

auto s = "hello";  // 推断为const char*类型

这种特性可以简化代码并减少类型定义的错误。

2. Lambda表达式

C++11中引入了Lambda表达式,可以将函数作为参数传递给其他函数,它们通常用于函数对象、回调和事件处理等场景。例如:


vector<int> vec 1;

for_each(vec.begin(), vec.end(), [](int x){ cout << x * 2 << " "; });

// 输出结果为:2 4 6 8 10

3. 空指针

在C++中,NULL是一个宏定义,用于表示空指针。但在C++11中,引入了新的关键字nullptr,用于表示空指针。nullptr是类型安全的,可以减少意外的错误。

4. std::thread

C++11中引入了一个名为std::thread的类,用于支持多线程编程。这个类可以在程序中并行执行多个函数,从而提高程序的性能。例如:


void func1() cout << "Thread 1 is running" << endl;

void func2() cout << "Thread 2 is running" << endl;

int main()

{

  thread t1(func1);

  thread t2(func2);

  t1.join();

  t2.join();

  return 0;

}

以上程序中,两个函数func1和func2将在不同的线程中并发执行。

总结:C++11带来了许多新的特性,丰富了C++的功能和灵活性,对于开发高质量的软件具有重要的意义。虽然C++11不是完全兼容C++98,但它包含了大部分C++98的特性,并且提供了更多的功能和性能上的优化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复