我想在向量中只插入几个值,例如3个整数。除了这个之外还有什么方法
vector<int>v;
v.push_back(a1);
v.push_back(a2);
v.push_back(a3);
除此之外的任何其他方式。一行中有什么东西?
答案 0 :(得分:5)
这样的事情会起作用:
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 };
答案 1 :(得分:0)
如果你事先知道需要在vector中放置多少元素,你可以使用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.
希望这会有所帮助。