【问题标题】:adding multiple elements to c++ vector at once [duplicate]一次将多个元素添加到c ++向量[重复]
【发布时间】:2013-11-20 20:03:56
【问题描述】:

我想知道是否可以更轻松地将多个元素 push_back 到 c++ 向量

例如

我创建了 5 个对象

A a1;
A a2;
A a3;
A a4;
A a5;

目前,我都是这样推的

vector<A> list;
list.push_back(a1);
list.push_back(a2);
list.push_back(a3);
list.push_back(a4);
list.push_back(a5);

我想知道这是否可以像矢量列表(a1,a2,a3,a4,a5)..etc 一样更简洁,谢谢!

【问题讨论】:

标签: c++ vector


【解决方案1】:

C++11 中,您可以使用vector 的初始化列表构造函数:

vector<A> list {a1, a2, a3, a4, a5};

如果C++11 不可用,您可以在创建临时数组时使用基于iterator 的构造函数,但它不如C++11 解决方案干净:

A tmp_list[] = {a1, a2, a3, a4, a5};
vector<A> list(tmp_list, tmp_list + 5};

【讨论】:

  • 另外,还有std::begin()std::end()
  • 是的,但我的意思是说明第二个版本是C++11 之前的版本,我会编辑得更清楚。
  • 我觉得这可以通过使用std::ref 克隆更有效地完成(更少的副本),但我没有动力去测试它;)
猜你喜欢
  • 2014-04-18
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
相关资源
最近更新 更多