ตามที่ (หวังว่า) เราทุกคนรู้ว่าvector<bool>พังโดยสิ้นเชิงและไม่สามารถถือว่าเป็นอาร์เรย์ C ได้ วิธีที่ดีที่สุดในการรับฟังก์ชันนี้คืออะไร? จนถึงตอนนี้ความคิดที่ฉันคิดคือ:
- ใช้
vector<char>แทนหรือ - ใช้คลาส Wrapper และมี
vector<bool_wrapper>
พวกคุณจัดการกับปัญหานี้อย่างไร? ฉันต้องการc_array()ฟังก์ชั่น
เป็นคำถามข้างเคียงถ้าฉันไม่ต้องการc_array()วิธีการใดวิธีที่ดีที่สุดในการแก้ไขปัญหานี้หากฉันต้องการเข้าถึงโดยสุ่ม ฉันควรใช้ deque หรืออย่างอื่น?
แก้ไข:
- ฉันต้องการการปรับขนาดแบบไดนามิก
- สำหรับผู้ที่ไม่ทราบ
vector<bool>มีความเชี่ยวชาญเพื่อให้boolใช้เวลา 1 บิต ดังนั้นคุณจึงไม่สามารถแปลงเป็นอาร์เรย์สไตล์ C ได้ - ฉันเดาว่า "เสื้อคลุม" เป็นการเรียกชื่อผิด ฉันกำลังคิดบางอย่างเช่นนี้:
แน่นอนฉันต้องอ่านmy_boolเนื่องจากปัญหาการจัดตำแหน่งที่เป็นไปได้ :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;