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. |
希望这有帮助。