用硬编码元素初始化 std::vector 的最简单方法是什么?

新手上路,请多包涵

我可以创建一个数组并像这样初始化它:

 int a[] = {10, 20, 30};

如何创建一个 std::vector 并以同样优雅的方式初始化它?

我知道的最好方法是:

 std::vector<int> ints;

ints.push_back(10);
ints.push_back(20);
ints.push_back(30);

有没有更好的办法?

原文由 Agnel Kurian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 613
2 个回答

一种方法是使用数组来初始化向量

static const int arr[] = {16,2,77,29};
vector<int> vec (arr, arr + sizeof(arr) / sizeof(arr[0]) );

原文由 Yacoby 发布,翻译遵循 CC BY-SA 2.5 许可协议

有多种方法可以对向量进行硬编码。我将分享几个方法:

  1. 通过一一推送值进行初始化
   // Create an empty vector
   vector<int> vect;

   vect.push_back(10);
   vect.push_back(20);
   vect.push_back(30);

  1. 初始化类似数组
   vector<int> vect{ 10, 20, 30 };

  1. 从数组初始化
   int arr[] = { 10, 20, 30 };
   int n = sizeof(arr) / sizeof(arr[0]);

   vector<int> vect(arr, arr + n);

  1. 从另一个向量初始化
   vector<int> vect1{ 10, 20, 30 };

   vector<int> vect2(vect1.begin(), vect1.end());

原文由 Anil Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题