Tôi đã chạy 3 thử nghiệm khác nhau liên quan đến danh sách và vectơ C ++.
Những người có vectơ tỏ ra hiệu quả hơn, ngay cả khi có rất nhiều sự chèn vào ở giữa.
Do đó, câu hỏi: trong trường hợp nào danh sách có ý nghĩa hơn vectơ?
Nếu hầu hết các vectơ có vẻ hiệu quả hơn và xem xét các thành viên của họ giống nhau như thế nào, thì những lợi thế nào còn lại cho danh sách?
Tạo N số nguyên và đặt chúng vào một thùng chứa để container vẫn được sắp xếp. Việc chèn đã được thực hiện một cách ngây thơ, bằng cách đọc từng phần tử một và chèn cái mới ngay trước cái lớn hơn đầu tiên.
Với một danh sách, thời gian đi qua mái nhà khi kích thước tăng, so với vectơ.Chèn N số nguyên vào cuối container.
Đối với danh sách và vectơ, thời gian tăng theo cùng một độ lớn, mặc dù nó nhanh hơn 3 lần với vectơ.Chèn N số nguyên vào một thùng chứa.
Bắt đầu hẹn giờ.
Sắp xếp vùng chứa bằng list.sort cho danh sách và std :: sort cho vectơ. Đồng hồ bấm giờ.
Một lần nữa, thời gian tăng theo cùng một thứ tự cường độ, nhưng trung bình nhanh hơn 5 lần với các vectơ.
Tôi có thể tiếp tục thực hiện các bài kiểm tra và tìm ra một vài ví dụ trong đó danh sách sẽ chứng minh tốt hơn.
Nhưng kinh nghiệm chung của các bạn khi đọc tin nhắn này có thể cung cấp câu trả lời hiệu quả hơn.
Bạn có thể đã gặp các tình huống trong đó danh sách thuận tiện hơn để sử dụng hoặc thực hiện tốt hơn?
list
lẽ sẽ tốt hơn nếu bạn loại bỏ nhiều yếu tố. Tôi không tin vector
sẽ trả lại bộ nhớ cho hệ thống cho đến khi toàn bộ vectơ bị xóa. Ngoài ra, hãy nhớ rằng bài kiểm tra số 1 của bạn không chỉ kiểm tra thời gian chèn. Đó là một thử nghiệm kết hợp tìm kiếm và chèn. Đó là việc tìm ra nơi để chèn vào nơi list
chậm. Chèn thực tế sẽ nhanh hơn vector.