std::array<T,N>::iterator类型是实现定义还是固定为value_type指针?
std::array<T,N>::iterator 的类型说明
std::array<T,N>::iterator 的具体类型是实现定义的,C++标准并没有强制要求它必须是指向value_type的原生指针。
不过因为std::array的元素是连续存储的,绝大多数编译器实现都会直接用原生指针作为它的迭代器类型,以此获得最优性能。但你绝对不能在代码里依赖这个实现细节——如果逻辑里必须用到原生指针,应该调用std::array::data()方法来获取指向首元素的指针,而非直接将迭代器强制转换为指针。
内容的提问来源于stack exchange,提问作者Blair Davidson
相关产品推荐
相关产品推荐

