resize(n, val)assign(n, val) 区别?
    当开始时容器都是空,即没有旧元素,两者行为时相同的。但是当存在旧元素且将 vector 进行扩容时, assign 会将所有元素都赋值为 val ,而 resize 只会讲新元素赋值为 val ,旧元素保持不变!

    1. #include <iostream>
    2. #include <vector>
    3. using namespace std;
    4. void printOut(vector<int> &nums) {
    5. for (int num: nums) cout << num << " ";
    6. cout << endl;
    7. }
    8. int main() {
    9. vector<int> a, b;
    10. a.resize(3, 8);
    11. b.assign(3, 6);
    12. printOut(a);
    13. printOut(b);
    14. a.resize(10, 9);
    15. b.assign(10, 4);
    16. printOut(a);
    17. printOut(b);
    18. return 0;
    19. }

    输出结果为:

    1. 8 8 8
    2. 6 6 6
    3. 8 8 8 9 9 9 9 9 9 9
    4. 4 4 4 4 4 4 4 4 4 4