如何通过std::array实现编译器自动排序功能?

更新于
2026-10-10 06:42:52
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1135个文字,预计阅读时间需要5分钟。

如何通过std::array实现编译器自动排序功能?

某日二师兄参加XXX科技有限公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:熟悉。面试官:你说的原生数组还是std::array?二师兄:原生数组。面试官:你觉得两者有什么区别?二师兄:区别不大。

某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:

面试官:array熟悉吗?

二师兄:你说的是原生数组还是std::array?

面试官:你觉得两者有什么区别?

二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,std::array提供了安全的下标访问方法at,当下标越界时会抛出异常。

面试官:还有其他区别吗?

二师兄:让我想想。。。在当作参数传递时,原生数组会退化为指针,而std::array会保留类型和长度信息。

面试官:好的。知道空数组的长度和长度为0的std::array对象有什么区别吗?

二师兄:(这也太刁钻了吧。。)空数组的长度应该是0,但是长度为0的std::array对象的长度是1,因为它是空类。

面试官:如果一个类型的拷贝构造函数和拷贝赋值运算符是被删除的,可以使用std::array存储它吗?

二师兄:当然可以。只是不能传递这个std::array对象,而只能传递这个对象的引用或指针。

阅读全文

本文共计1135个文字,预计阅读时间需要5分钟。

如何通过std::array实现编译器自动排序功能?

某日二师兄参加XXX科技有限公司的C++工程师开发岗位第25面:面试官:array熟悉吗?二师兄:熟悉。面试官:你说的原生数组还是std::array?二师兄:原生数组。面试官:你觉得两者有什么区别?二师兄:区别不大。

某日二师兄参加XXX科技公司的C++工程师开发岗位第25面:

面试官:array熟悉吗?

二师兄:你说的是原生数组还是std::array?

面试官:你觉得两者有什么区别?

二师兄:区别不是很大,原生数组(非动态数组)和std::array都在栈上开辟空间,初始化的时候需要提供数组长度,且长度不可改变。有一点区别的是,std::array提供了安全的下标访问方法at,当下标越界时会抛出异常。

面试官:还有其他区别吗?

二师兄:让我想想。。。在当作参数传递时,原生数组会退化为指针,而std::array会保留类型和长度信息。

面试官:好的。知道空数组的长度和长度为0的std::array对象有什么区别吗?

二师兄:(这也太刁钻了吧。。)空数组的长度应该是0,但是长度为0的std::array对象的长度是1,因为它是空类。

面试官:如果一个类型的拷贝构造函数和拷贝赋值运算符是被删除的,可以使用std::array存储它吗?

二师兄:当然可以。只是不能传递这个std::array对象,而只能传递这个对象的引用或指针。

阅读全文