📜  g++ 编译 c++11 - C++ (1)

📅  最后修改于: 2023-12-03 15:15:12.987000             🧑  作者: Mango

G++编译C++11

介绍

在C++11标准下,我们有许多新的语言特性,包括Lambda表达式、右值引用、自动类型推断、范围for循环、智能指针等等。为了使用这些特性,我们需要使用支持C++11的编译器。G++是GNU编译器套件(GCC)的一部分,可以编译C++11程序。

编译C++11程序

要在G++中编译C++11程序,请将编译选项更改为支持C++11。以下是使用G++编译C++11程序的命令:

g++ -std=c++11 source.cpp -o output

在上面的命令中,我们使用了'-std=c++11'选项,指定了我们要使用C++11标准。我们还指定了源文件'source.cpp'和输出文件'output'。

示例程序

下面是一个简单的C++11程序,它使用了Lambda表达式和右值引用:

#include <iostream>
#include <vector>
using namespace std;

int main() {
  vector<int> v {1, 2, 3, 4, 5};
  int sum = 0;
  
  for (auto&& n : v) {
    sum += n * n;
  }
  
  auto is_odd = [](int n) { return n % 2 == 1; };
  int count = count_if(v.begin(), v.end(), is_odd);
  
  cout << "Sum of squares: " << sum << endl;
  cout << "Count of odd numbers: " << count << endl;
  
  return 0;
}

我们可以使用以下命令编译该程序:

g++ -std=c++11 source.cpp -o output
结论

通过对G++的源文件进行适当的更改,我们可以轻松地在C++11标准下编写并编译程序。这使得我们可以利用C++11的许多新特性,从而使我们的代码更加高效和易于维护。