resize(n, val)
和 assign(n, val)
区别?
当开始时容器都是空,即没有旧元素,两者行为时相同的。但是当存在旧元素且将 vector
进行扩容时, assign
会将所有元素都赋值为 val
,而 resize
只会讲新元素赋值为 val
,旧元素保持不变!
#include <iostream>
#include <vector>
using namespace std;
void printOut(vector<int> &nums) {
for (int num: nums) cout << num << " ";
cout << endl;
}
int main() {
vector<int> a, b;
a.resize(3, 8);
b.assign(3, 6);
printOut(a);
printOut(b);
a.resize(10, 9);
b.assign(10, 4);
printOut(a);
printOut(b);
return 0;
}
输出结果为:
8 8 8
6 6 6
8 8 8 9 9 9 9 9 9 9
4 4 4 4 4 4 4 4 4 4