这是什么意思?
vector<int> scores(10, 0);
评论说它将所有10个元素初始化为0.这是否意味着向量的大小为10,然后降为0?
另外,push_back
:
scores.push_back(0);
这会增加更多内存吗?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
cout << "Creating a 10 element vector to hold scores.\n";
//initialize all 10 elements to 0
vector<int> scores(10, 0);
cout << "Vector size is :" << scores.size() << endl;
cout << "Vector capacity is:" << scores.capacity() << endl;
cout << "Adding a score.\n";
//memory is reallocated to accommodate growth
scores.push_back(0);
cout << "Vector size is :" << scores.size() << endl;
cout << "Vector capacity is:" << scores.capacity() << endl;
答案 0 :(得分:1)
constructor创建一个包含十个元素的向量,并将每个元素设置为零。
对于push_back
调用,可能会导致分配更多内存。 (有关何时发生,请参阅链接参考。)
答案 1 :(得分:0)
这是否意味着向量的大小为10,然后降为0?
不,这意味着大小为10,并且每个元素都使用值0初始化。
这会增加更多内存吗?
它正在增加向量的大小。如果有足够的容量(即如果已经为新元素分配了足够的内存),它将只使用该内存。否则,将分配更大的内存块,并将元素移入其中,以便可以将新元素放在它们之后。