[Cpp-STL] Vector3
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