Tôi biết một vài (tất cả?) STL triển khai thực hiện tối ưu "chuỗi nhỏ", thay vì lưu trữ 3 con trỏ thông thường để bắt đầu, kết thúc và dung lượng chuỗi sẽ lưu trữ dữ liệu ký tự thực trong bộ nhớ được sử dụng cho con trỏ nếu sizeof (ký tự) < = sizeof (con trỏ). Tôi đang ở trong một tình huống mà tôi có rất nhiều vectơ nhỏ với kích thước phần tử < = sizeof (con trỏ). Tôi không thể sử dụng mảng kích thước cố định, vì vectơ cần có khả năng thay đổi kích thước động và có khả năng phát triển khá lớn. Tuy nhiên, kích thước trung bình (không có nghĩa là) của vectơ sẽ chỉ là 4-12 byte. Vì vậy, một "chuỗi nhỏ" tối ưu hóa thích nghi với vectơ sẽ khá hữu ích cho tôi. Có một điều như vậy tồn tại?tối ưu hóa chuỗi nhỏ cho vector?
Tôi đang suy nghĩ về việc cuộn của riêng mình bằng cách đơn giản lực lượng vũ phu chuyển đổi vectơ thành chuỗi, tức là cung cấp giao diện vectơ cho chuỗi. Ý tưởng tốt?
Câu hỏi của bạn không rõ ràng lắm. Hơn nữa, bạn có ý nghĩa gì với giao diện 'vectơ' đối với' chuỗi'? Bạn đang nói về một lớp 'svector' đặc biệt để giữ các chuỗi nhỏ? – dirkgently
No. Tôi có nghĩa là một chuỗi giữ giá trị tùy ý thay vì các loại char - giống như một vectơ. Một giao diện vectơ tới một chuỗi có nghĩa là bao bọc đối tượng chuỗi và phơi bày một giao diện tương thích vectơ, thêm các hàm thiếu như push_back. – BuschnicK
Bạn sẽ không thể làm điều gì đó với người cấp phát? Bạn sẽ không nhận được ngay cả 3 con trỏ giá trị bộ nhớ, vì vector cũng cần một cách để biết nếu nó đang ở chế độ "nhỏ" hoặc "lớn". – UncleBens