如何在c ++中只在vector中插入一些数据?


How to insert only a few data in vector in c++?

本问题已经有最佳答案,请猛点这里访问。

我只想在一个向量中插入几个值,比如3个整数,还有别的方法吗?

1
2
3
4
   vector<int>v;
   v.push_back(a1);
   v.push_back(a2);
   v.push_back(a3);

除此之外还有别的办法吗?有一条线吗?


类似这样的事情会奏效:

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

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

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

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

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


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

为了确保容量是低计数,在你的情况下说3,你可能需要使用C++ 11函数添加,STD::vector:SurryToToFig()函数。在这里,您可以在此函数中传递int参数,以确保只保留向量中需要的元素。示例用法。

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

希望这有帮助。