📅  最后修改于: 2023-12-03 15:15:12.987000             🧑  作者: Mango
在C++11标准下,我们有许多新的语言特性,包括Lambda表达式、右值引用、自动类型推断、范围for循环、智能指针等等。为了使用这些特性,我们需要使用支持C++11的编译器。G++是GNU编译器套件(GCC)的一部分,可以编译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的许多新特性,从而使我们的代码更加高效和易于维护。