typedef map<KeyType, ValType> KVMap;
KVMap kvmap;
kvmap.insert(KVMap::value_type(key, val));
kvmap.insert(make_pair(key, val));
Lựa chọn nào ở trên để chèn vào bản đồ STL luôn nhanh hơn? Tại sao?C++: value_type so với make_pair, nhanh hơn để chèn bản đồ?
Lưu ý: Tôi biết rõ rằng insert()
nhanh hơn sử dụng []=
để thêm (không cập nhật) cặp khóa-giá trị vào bản đồ. Hãy giả sử rằng truy vấn của tôi là về việc thêm, không cập nhật. Do đó tôi đã hạn chế nó để insert()
.
Trừ khi chương trình của bạn chỉ bao gồm chèn vào bản đồ, bạn có thực sự nghĩ rằng có sự khác biệt về tốc độ nào đáng chú ý không? Bạn sẽ nhận được một hồ sơ để hồ sơ của bạn hoàn thành, sạch sẽ, chương trình duy trì để xem những gì các điểm chậm thực sự là. Và không nên có sự khác biệt, sau khi nội tuyến. – GManNickG
GMan: Sự khác biệt rất nhỏ. Xem bình luận của tôi với câu trả lời của Karl. –