【问题标题】:How to insert only a few data in vector in c++? [duplicate]如何在 C++ 中仅在向量中插入少量数据? [复制]
【发布时间】:2016-05-29 06:58:19
【问题描述】:

我只想在一个向量中插入几个值,比如 3 个整数。除此之外还有其他方法吗

   vector<int>v;
   v.push_back(a1);
   v.push_back(a2);
   v.push_back(a3);

除此之外的任何方式。一行中的任何内容?

【问题讨论】:

  • 可能是vector&lt;int&gt; v = {a1, a2, a3};? (C++11)。

标签: c++


【解决方案1】:

这样的事情会起作用:

int arr[] = { 4, 5, 6, 7 };
std::vector<int> v1 (arr, arr + sizeof(arr) / sizeof(arr[0]));

如果您使用的是 C++11,您有更多选择:

std::vector<int> v2 (std::begin(arr), std::end(arr));

或者,更好的是,没有临时数组:

std::vector<int> v3 { 1, 2, 3 };

【讨论】:

  • 工作得很好 :) 谢谢 :)
【解决方案2】:

如果您事先知道向量中需要放置多少元素,您可以使用 std::vector::reserve 函数。但它不会缩小向量的初始容量。

为确保容量在您的情况下为 3,您可能需要使用添加的 C++11 函数,std::vector::shrink_to_fit() 函数。在这里,您可以在此函数中传递 int 参数,以确保仅在向量中保留所需的元素。示例用法。

vector<int> vi;
vi.shrink_to_fit(3); // only takes 3 elements. 
// now add 3 elements as you need.

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 2020-03-05
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多