C++面试中,std::array的编译器排序机制是如何巧妙实现的?

2026-04-12 03:000阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

C++面试中,std::array的编译器排序机制是如何巧妙实现的?

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

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

C++面试中,std::array的编译器排序机制是如何巧妙实现的?

面试官:array熟悉吗?

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

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

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

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

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

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

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

阅读全文

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

C++面试中,std::array的编译器排序机制是如何巧妙实现的?

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

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

C++面试中,std::array的编译器排序机制是如何巧妙实现的?

面试官:array熟悉吗?

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

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

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

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

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

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

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

阅读全文