Như (hy vọng) chúng ta đều biết, vector<bool>
nó hoàn toàn bị hỏng và không thể được coi là một mảng C. Cách tốt nhất để có được chức năng này là gì? Cho đến nay, những ý tưởng tôi đã nghĩ ra là:
- Sử dụng một
vector<char>
thay thế, hoặc - Sử dụng một lớp trình bao bọc và có
vector<bool_wrapper>
Làm thế nào để các bạn xử lý vấn đề này? Tôi cần c_array()
chức năng.
Một câu hỏi phụ, nếu tôi không cần c_array()
phương pháp, cách tốt nhất để tiếp cận vấn đề này nếu tôi cần truy cập ngẫu nhiên là gì? Tôi có nên sử dụng deque hay thứ gì khác không?
Biên tập:
- Tôi cần định cỡ động.
- Đối với những người chưa biết,
vector<bool>
là chuyên ngành để mỗi ngườibool
mất 1 chút. Vì vậy, bạn không thể chuyển đổi nó thành một mảng kiểu C. - Tôi đoán "wrapper" là một từ nhầm lẫn một chút. Tôi đã nghĩ một cái gì đó như thế này:
Tất nhiên, sau đó tôi phải đọc my_bool
do các vấn đề về căn chỉnh có thể xảy ra :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;