Sự khác biệt giữa Vector và List Sự khác biệt giữa vector

Anonim

Vector vs Danh sách

Thường thì gây nhầm lẫn cho các lập trình viên, vectơ và danh sách là những chuỗi được sử dụng trong việc giữ mảng trong C + + và Java. Hai thuật ngữ giữ địa chỉ mảng nhưng với các phương pháp khác nhau của mảng đang nắm giữ.

Điều cơ bản chúng ta cần biết là một mảng là một "danh sách" chứa một số hoặc tất cả các dữ liệu, i. e., số nguyên, điểm nổi hoặc ký tự và được định nghĩa trong ngoặc "[]. "

Trên thực tế, vectơ và danh sách hành động theo các trường hợp. Vì vậy, chúng ta hãy cùng xem xét hai thuật ngữ này.

Vectors

Vectors được sử dụng trong việc giữ mảng và các phần tử truy cập. Ở đây bạn có thể truy cập bất kỳ phần tử ngẫu nhiên sử dụng toán tử "[]". Vì vậy, nó trở nên dễ dàng để xem qua tất cả các yếu tố hoặc một yếu tố cụ thể với một hoạt động vector. Vì vậy, nếu bạn chèn bất kỳ đối tượng nào vào cuối, vào đầu, hoặc ở giữa, sau đó các vectơ có một điểm cộng bởi vì bạn có thể truy cập vào địa chỉ ngẫu nhiên và thực hiện các thay đổi ở đó. Tuy nhiên, vectơ là một chút chậm so với các đối tượng danh sách. Các vector được coi là các đối tượng đồng bộ, hiệu quả trong việc truy cập ngẫu nhiên và chúng giữ đúng dữ liệu với một danh sách được đồng bộ. Một vector được chọn bất cứ khi nào không cần chèn hoặc xóa trong

giữa (danh sách) hoặc từ phía trước.

Số lượng các phần tử trong mảng có thể thay đổi đáng kể.

Ví dụ:

vector V;

V. chèn (V bắt đầu (), 3);

khẳng định (kích thước V. (== 1 && V. capacity ()> = 1 &&V [0] == 3);

Danh sách

Danh sách là "các chuỗi liên kết đôi" hỗ trợ cả chuyển tiếp và đi lạc. Thời gian trong việc chèn và xóa vào đầu, cuối, và ở giữa là không đổi. Chèn và ghép nối giữa các danh sách liên kết không làm mất hiệu lực bất kỳ sự lặp lại nào trong các phần tử. Chỉ xóa bỏ hiệu lực của phép lặp. Chúng không được đồng bộ nên chúng không thể truy cập ngẫu nhiên. Thứ tự lặp lại có thể thay đổi theo người dùng, nhưng nó không ảnh hưởng đến bất kỳ sự thay đổi nào trong các phần tử. Chúng nhanh hơn vector và lý tưởng để chèn và xóa ở đầu, giữa và cuối danh sách các phần tử.

Ví dụ:

# include

/ / danh sách định nghĩa lớp mẫu

….

int main ()

{

int array [4] = {2, 6, 4, 8};

std:: giá trị danh sách;

std:: list otherValues;

Tóm tắt:

1. Một danh sách không được đồng bộ hóa trong khi một vector là.

2. Danh sách không có kích thước mặc định trong khi một vector có kích thước mặc định là 10.

3. Danh sách và vectơ là cả hai mảng phát triển tự động.

4. Một danh sách không phải là thread an toàn trong khi một vector là chủ đề an toàn.

5. Danh sách, vì chúng chỉ áp dụng cho bổ sung và xóa ở phía trước và phía sau, nhanh hơn trong khi

vectơ có thêm CPU.

6. Một vector phát triển theo kích thước của nó hai lần trong khi một danh sách giảm xuống còn một nửa, i.e., 50 phần trăm.