Như (hy vọng) chúng ta đều biết, vector<bool>
hoàn toàn bị hỏng và không thể được coi là 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ĩ đến là:Cách thay thế cho vector <bool>
- Sử dụng một
vector<char>
thay vào đó, hoặc - Sử dụng một lớp wrapper và có
vector<bool_wrapper>
Làm thế nào để các bạn xử lý vấn đề này? Tôi cần hàm c_array().
Là một câu hỏi phụ, nếu tôi không cần phương thức c_array(), cách tốt nhất để tiếp cận vấn đề này là gì nếu tôi cần truy cập ngẫu nhiên? Tôi có nên sử dụng một deque hay cái gì khác?
Edit:
- tôi làm cần kích thước động.
- Đối với những người không biết,
vector<bool>
là chuyên môn để mỗi bool mất 1 bit. 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 "trình bao bọc" là một chút nhầm lẫn. Tôi đã suy nghĩ một cái gì đó như thế này:
Tất nhiên, sau đó tôi phải đọc vào một my_bool do các vấn đề liên kết càng tốt :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;
Có một số lý do để không sử dụng ... một mảng kiểu C? – kquinn
rlbond, bạn có cần kích thước động không? –
Ok tôi sẽ cắn - tại sao bạn nghĩ rằng vector là "" hoàn toàn bị hỏng "? –