我应该如何使用新的C++11标准来编程C++

How should I approach programming C++ with the new C++11 standard in place?

本文关键字:标准 编程 C++ C++11 何使用 我应该      更新时间:2023-10-16

我已经编程C++有一段时间了,我习惯于做以下事情:

vector<int> vi;
for (vector<int>::const_iterator it = vi.begin(); it != vi.end(); ++it) {
    // do something with it
}

然而,新的C++标准C++11引入了auto关键字,因此我可以编写以下内容:

vector<int> vi;
for (auto it : vi ) 
    // do something with it
}

我应该在代码中开始使用它,还是应该使用迭代器方法?

在新的C++11标准中,同样的问题也适用于许多其他方面。我应该开始在代码中使用新事物,而忘记旧的做事方式吗?

这取决于项目和编译器的支持。C++11添加了许多内容,使您的程序更可读、更快、更健壮等。

C++11唯一的缺点是并非所有平台都支持它。您的项目需求可能要求支持不支持C++11的平台或编译器,或者迁移到C++11所获得的价值可能不如放弃缺乏C++11支持的编译器或平台所损失的价值大。

这不是一个要么全有要么全无的决定。您可能可以选择一些适合自己的功能,并决定将其他一些功能保留到稍后更多编译器获得更好的支持时。

不同的项目会有所不同,判断将取决于您对C++11带来的各种好处的重视程度,以及您对旧平台支持的重视程度。随着时间的推移,事情会进一步朝着有利于C++11的方向发展,直到毫无疑问,但现在你只需要看看你的项目,并决定C++11的哪些部分是否为你所接受。