我能想到三种填表的方法std::vector
假设我们有
vector<int> v(100, 0);
然后我希望它保持 (1, 1, 1)。我们可以做的:
v.clear();
v.resize(3, 1);
或者
v = vector<int>(3, 1);
我学到了另一种方法:
vector<int>(3, 1).swap(v);
第一个问题是:它们中的任何一个是最好的方法吗?
第二个问题:假设v
是在主函数之外声明的。根据this answer,内存将分配在数据段中。如果我使用第二种或第三种方法,内存会分配在堆栈上吗?