微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++ 向量 push_back 空大括号

如何解决C++ 向量 push_back 空大括号

我见过类似的代码

struct A {
  int m;
};

vector<A> vec;
vec.push_back({});

我的问题是: vec.push_back({});vec.push_back(A{}) 之间有什么区别?为什么我们可以在 A 中省略 A{}

解决方法

<?php $myJson = '{ "per_page":"6","total":"12","total_pages":"2","data": [ { "id":"1","email":"rdumdumle@gmail.com","first_name":"david","last_name":"escabar" },{ "id":"2","email":"bluesky@gmail.com","first_name":"Willie","last_name":"Nelson" } ] }'; print_r($myJson); //print_r($data); //print_r($_POST); ?> vec.push_back({}); 有什么区别?

没有,在这种情况下。

为什么我们可以在 vec.push_back(A{}) 中省略 A

您正在实例化一个 A{} 以保存 vector 元素。因此,其重载的 push_back() 方法将接受 Aconst A& 输入参数。现代 C++ 标准提供 initialization rules,让编译器推断在这些上下文中使用的 A&& 将构造一个 {} 对象,这就是为什么您不需要在 {{1} 中指定类型}} 明确。

仅供参考,A 也有 emplace_back() 方法,您应该使用它而不是推送空的 A{}

vector

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。