商汤C++开发面试题及参考答案
C++11 有哪些新特性?
C++11 带来了众多令人瞩目的新特性,极大地丰富和增强了这门编程语言的功能与表现力。
首先是类型推导方面,引入了auto
关键字。通过auto
,编译器能够自动根据初始化表达式来推导出变量的类型,这在处理复杂的模板类型或者较长的类型声明时非常方便,能让代码更加简洁明了。例如,在迭代器相关的代码中,以往需要明确写出迭代器的具体类型,而使用auto
就可以轻松简化代码书写,像for (auto it = container.begin(); it!= container.end(); ++it)
这样的写法就无需再去详细写明迭代器的冗长类型了。
其次是范围for
循环,它提供了一种简洁直观的遍历容器元素的方式。以往遍历数组或者容器,需要通过索引或者迭代器来逐个访问元素,代码相对繁琐。而在 C++11 中,例如对于一个std::vector<int> vec
,可以直接使用for (int element : vec)
这样的语句,就能依次访问vec
中的每个元素了,大大提升了代码的可读性和编写效率。