gpt4 book ai didi

c++ - 选择 initializer_list 迭代器定义

转载 作者:太空狗 更新时间:2023-10-29 20:42:49 26 4
gpt4 key购买 nike

为什么 std::initializer_list<T>::iterator被定义为裸指针 T const*而不是 random_access_iterator概念?

最佳答案

原因可能是来自标准的这个小花絮

第 18.9 节

An object of type initializer_list provides access to an array of objects of type const E. [ Note: A pair of pointers or a pointer plus a length would be obvious representations for initializer_list. initializer_list is used to implement initializer lists as specified in 8.5.4. Copying an initializer list does not copy the underlying elements. —end note ]

这表明复制时的 initializer_lists 将具有指针语义而不是值语义,这可能就是为什么它们的迭代器直接是指针而不是包装成“随机访问迭代器”类型的原因。

据我所知,这是唯一具有指针语义而不是值语义的标准“容器”(注意这里的引号)。

关于c++ - 选择 initializer_list 迭代器定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17518019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com