std :: vector中push_back函数的奇怪语法

尼基

我遇到了该push_back函数的以下语法Vertex只是一个包含三个浮点x,y和z的结构。第二行看起来就像写它一样。但是第一行对我来说很奇怪。在解释该视频的视频中,据说这是通过成员初始化器列表完成的,但看起来更像是隐式转换。我只是被那里的花括号弄糊涂了。谁能解释为什么这种语法有效?

std::vector<Vertex> vertices;

vertices.push_back({ 1, 2, 3 });
vertices.push_back(Vertex(1, 2, 3));
songyuanyao

这不是成员初始化程序列表,而是副本列表初始化(自C ++ 11起)。

7)在函数调用表达式中,将braced-init-list用作参数,并使用list-initialization初始化函数参数

vertices.push_back()期望以aVertex作为参数,braced-init-list { 1, 2, 3 }用于构造一个临时变量,该临时变量将Vertex传递给push_back以后。如您所说,您也可以将其视为隐式转换,即从braced-init-list的转换Vertex

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

std :: vector函数push_back中的奇怪段错误

来自分类Dev

MSVC中std :: vector :: push_back的实现

来自分类Dev

MSVC中std :: vector :: push_back的实现

来自分类Dev

std :: vector <std :: unique_ptr <>> :: push_back()的正确语法是什么?

来自分类Dev

std :: vector的push_back()导致奇怪的编译时错误消息

来自分类Dev

为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

来自分类Dev

调用std :: vector :: push_back()会更改vector中的先前元素吗?

来自分类Dev

调用std :: vector :: push_back()会更改vector中的先前元素吗?

来自分类Dev

为什么使用虚拟析构函数进行std :: vector :: push_back segfaults?

来自分类Dev

在使用仅移动类型派生的类中定义析构函数时,使用std :: vector的emplace_back或push_back创建时会产生编译时错误

来自分类Dev

std :: vector :: push_back的成本是成功还是无效?

来自分类Dev

push_back期间std :: vector分段错误

来自分类Dev

关于`std :: vector :: push_back`的小数的选择

来自分类Dev

线程安全性std :: vector push_back并保留

来自分类Dev

OpenCV点的std :: vector,没有push_back方法

来自分类Dev

std::vector<>::push_back 导致 Arduino 链接错误

来自分类Dev

想要简化我的 std::vector push_back 用法

来自分类Dev

将指针数组推入std :: vector中,避免使用push_back复制对象

来自分类Dev

std :: vector <std :: vector <int >> push_back导致堆缓冲区溢出

来自分类Dev

在std :: vector push_back()和std :: map运算符中使用&&作为参数[]

来自分类Dev

使用push_back时,std :: unique_ptr是否已移入std :: vector?

来自分类Dev

同步push_back和std :: thread

来自分类Dev

向量:: push_back和std :: move

来自分类Dev

同步push_back和std :: thread

来自分类Dev

std vector push_back':2个重载没有针对“ this”指针错误的合法转换

来自分类Dev

当push_back新元素添加到std :: vector时,C ++参考更改

来自分类Dev

为什么std :: vector :: push_back需要赋值运算符

来自分类Dev

C ++ std :: vector可以同时处理来自多线程的push_back吗?

来自分类Dev

AddressSanitizer将std :: vector <T> :: push_back标识为释放后使用堆错误的原因

Related 相关文章

  1. 1

    std :: vector函数push_back中的奇怪段错误

  2. 2

    MSVC中std :: vector :: push_back的实现

  3. 3

    MSVC中std :: vector :: push_back的实现

  4. 4

    std :: vector <std :: unique_ptr <>> :: push_back()的正确语法是什么?

  5. 5

    std :: vector的push_back()导致奇怪的编译时错误消息

  6. 6

    为什么要在std :: vector :: push_back(T object)方法中构造对象时调用析构函数?

  7. 7

    调用std :: vector :: push_back()会更改vector中的先前元素吗?

  8. 8

    调用std :: vector :: push_back()会更改vector中的先前元素吗?

  9. 9

    为什么使用虚拟析构函数进行std :: vector :: push_back segfaults?

  10. 10

    在使用仅移动类型派生的类中定义析构函数时,使用std :: vector的emplace_back或push_back创建时会产生编译时错误

  11. 11

    std :: vector :: push_back的成本是成功还是无效?

  12. 12

    push_back期间std :: vector分段错误

  13. 13

    关于`std :: vector :: push_back`的小数的选择

  14. 14

    线程安全性std :: vector push_back并保留

  15. 15

    OpenCV点的std :: vector,没有push_back方法

  16. 16

    std::vector<>::push_back 导致 Arduino 链接错误

  17. 17

    想要简化我的 std::vector push_back 用法

  18. 18

    将指针数组推入std :: vector中,避免使用push_back复制对象

  19. 19

    std :: vector <std :: vector <int >> push_back导致堆缓冲区溢出

  20. 20

    在std :: vector push_back()和std :: map运算符中使用&&作为参数[]

  21. 21

    使用push_back时,std :: unique_ptr是否已移入std :: vector?

  22. 22

    同步push_back和std :: thread

  23. 23

    向量:: push_back和std :: move

  24. 24

    同步push_back和std :: thread

  25. 25

    std vector push_back':2个重载没有针对“ this”指针错误的合法转换

  26. 26

    当push_back新元素添加到std :: vector时,C ++参考更改

  27. 27

    为什么std :: vector :: push_back需要赋值运算符

  28. 28

    C ++ std :: vector可以同时处理来自多线程的push_back吗?

  29. 29

    AddressSanitizer将std :: vector <T> :: push_back标识为释放后使用堆错误的原因

热门标签

归档