Vector trong C++ là gì?
Không
giống
như
array
(mảng),
chỉ
một
số
giá
trị
nhất
định
có
thể
được
lưu
trữ
dưới
một
tên
biến
duy
nhất.
Vector
trong
C++
giống
dynamic
array
(mảng động)
nhưng có khả năng tự động
thay đổi kích thước khi
một phầ
n tử được
chèn hoặc
xóa
tùy
thuộc
vào
nhu
cầu của
tác
vụ
được
thực thi,
với việc
lưu
trữ của
chúng
sẽ
được
vùng
chứa
tự
động
xử
lý.
Các
phần
tử
vector
được
đặt
trong
contiguous
storage
(bộ nhớ
liền kề)
để
ch
úng
có
t
hể
được truy
cập
v
à
duyệt qua
bằng
c
ách
sử dụng iterator.
Vì sao nên
dùng Vector
Nếu
bạn
đ
ã
phát chán
việc
quản
lý
mảng
động qua
con trỏ
trong
C++
hay chán
phải tạo mản
g mới,
copy các phần
tử qua mảng
mới, rồi l
ại xóa mảng cũ
mỗi khi
bạn muốn resize kích th
ước
mảng động trong C++. Thật
t
hừa thải, tốn thời
gia
n
v
à đó là thời điểm
ta nhận ra C++ còn có
vector.
Một số điểm n
ổi trội của Vec
tor
–
Bạn không cần phải khai báo
kích thước của mảng ví dụ int A[100]…, vì vector
có thể tự động nâng
kích thước lên.
–
Nếu
bạn
thêm
1
phần
tử
vào
vector
đã
đầy
rồi,
thì
nó
sẽ
tự
động
tăng
kích
thước của nó lên để
dành chỗ cho giá trị
mới này.
–
Vector còn giúp cho bạn
biết số lượng các phần
tử mà bạn đang lưu trong
đ
ó.
–
Dùng
số
phần
tử
âm
vẫn
được
trong
vector
ví
dụ
A[
-6],
A[
–
9],
rất
tiện
trong
việc cài đặt các giải t
hu
ật
.
Vector
có thứ tự
trong C++ khôn
g?
Không
có
vector
nào
không
được
sắp
xếp
trong
C++.
Các
phần
tử
vector
được
đặt
trong
bộ
nhớ
liền
kề
để
chúng
có
thể
được
truy
cập
và
di
chuyển
qua
các
iterator.
Trong
vector,
dữ
liệu
được
chèn
vào
cuối.
Việc
chèn
một
phần
tử
vào
cuối
sẽ mất
thời
gian chênh
lệch,
vì đôi
khi
có
thể
cần mở
rộng
vector.
Việc xóa
phần
tử
cuối
cùng
chỉ
mất
thời
gian
không
đổi
vì
không
xảy
ra
thay
đổi
kích
thước.
Chèn và xóa ở đầu
hoặc giữa vector là
tuyến tính theo thời gi
a
n.