Loading Now

[Cpp-STL] Vector3

vector c++

Bài tập

Cho trước một vector và một số tự nhiên n, hãy thay đổi kích thước của vector đó về n.

Lý thuyết.

Để thay đổi kích thước của vector v về n, bạn có thể sử dụng hàm v.resize(n). Nếu n lớn hơn kích thước hiện tại của vector thì vector sẽ tự động thêm vào các phần tử có giá trị bằng 0 giống trong ví dụ sau:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.resize(5);
    for (auto x : v) {
        cout << x << " ";
    }
    return 0;
}

Kết quả khi chạy chương trình:

1 2 3 0 0

Ngược lại, nếu n nhỏ hơn kích thước của vector v thì các phần tử có chỉ số lớn hơn hoặc bằng n sẽ bị xóa đi:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    v.push_back(5);
    v.resize(3);
    for (auto x : v) {
        cout << x << " ";
    }
    return 0;
}

Kết quả khi chạy chương trình:

1 2 3

Bạn cũng có thể sử dụng hàm resize() để khởi tạo giá trị cho các phần tử trong vector giống như sau:

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v;
    // Khởi tạo vector với 3 phần tử, các phần tử có giá trị là 5
    v.resize(3, 5);
    for (auto x : v) {
        cout << x << " ";
    }
    return 0;
}

Kết quả khi chạy chương trình:

5 5 5

Ví dụ tổng quan về hàm resize():

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> v;
    for (int i = 1; i <= 10; i++) {
        v.push_back(i);
    }
    v.resize(5);
    v.resize(10, 10);
    v.resize(15);
    for (auto x : v) {
        cout << x << " ";
    }
    return 0;
}

Kết quả khi chạy chương trình:

1 2 3 4 5 10 10 10 10 10 0 0 0 0 0

Hướng dẫn

Code mẫu:

std::vector<int> resizeVector(std::vector<int> v, int n)
{
    v.resize(n);
    return v;
}

Post Comment

Contact