Tai lieu doc them ve vectors – Vector trong C++ l‡ gÏ? Không giống như array (mảng), chỉ một số giá – StuDocu

Vector trong C++ là gì?

Không

giống

như

array

(mảng),

chỉ

một

số

giá

trị

nhất

định

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

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

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ì

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

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

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

thể

được

truy

cập

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

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

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.