C 编译器对此初始列表有什么作用
What does a C++ compiler do with this initializer list?
使用这样的初始化列表时:
for (int i : {3, 1, 6, 4})
{
std::cout << "i=" << i << std::endl;
}
OUPUT的顺序为3、1、6,最后4个。因此,我知道编译器必须使用类似于std::vector<int>
而不是std::set<int>
的东西。
这可以保证吗?我在哪里可以找到解释编译器如何解释{3, 1, 6, 4}
的文档。
您正在创建std::initializer_list<int>
的实例。有关详细信息
从该页面:
类型
std::initializer_list<T>
的对象是一个轻巧的代理对象,可访问类型const T
的对象。
保证输出顺序。但是,这不是因为编译器创建了std::vector<int>
。可以保证,因为initializer_list
下方有一个int
s。
您的基于范围的循环使用Brad-Init-list作为范围表达式,该范围表达式构建了类型std :: prinistiber_list&lt; int&gt;。保证该订单是因为8.5.4.5。N4140草案/标准状态(重点矿山)的段落:
类型std :: initializer_list&lt; e&gt;是由 初始化列表就像分配了临时的实现 n元素的数组类型常规的,其中n是 初始化列表中的元素。
相关文章:
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 什么更好?返回对象指针列表?或返回指向对象列表的指针?
- 有什么方法可以将元素添加到列表中,如图所示?
- 处理从列表中删除指向对象的指针的"healthy"方法是什么?
- 当通知迭代器参数初始化为空列表的开头时,list::insert 行为是什么?
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- CSUF EPP - 你有什么想法(在添加到链接列表末尾时遇到麻烦)
- 用于筛子的最佳数据结构是什么(即一些被划掉的数字列表)?
- 在成员初始值设定项列表和构造函数主体中委派构造函数有什么区别
- 为什么BOOST :: HANA :: EXAREMIS ::键入实验功能?类型列表的棘手是什么
- 对于这个英语单词列表来说,什么是好的哈希函数?
- 存储数据列表并自动分配给结构的最佳方法是什么
- C 中的属性列表中应该使用什么
- 获得给定向量的排列索引列表的最佳方法是什么?
- STD ::列表对其分配器参数有什么作用
- 我的链接列表反向递归方法的代码的问题是什么?
- 模板参数列表中只有一个类型名称是什么意思?
- "Debug assertion failed" 这种有什么问题?它应该按年份对包含电影对象的动态列表进行排序
- C 编译器对此初始列表有什么作用
- 创建指针列表的正确范例是什么