คำถามติดแท็ก bitvector

12
อธิบายการใช้บิตเวกเตอร์เพื่อพิจารณาว่าตัวละครทุกตัวมีลักษณะเฉพาะหรือไม่
ฉันสับสนเกี่ยวกับการทำงานของเวกเตอร์บิต (ไม่คุ้นเคยกับบิตเวกเตอร์) นี่คือรหัสที่ได้รับ ใครช่วยกรุณาพาฉันไปที่นี้ public static boolean isUniqueChars(String str) { int checker = 0; for (int i = 0; i < str.length(); ++i) { int val = str.charAt(i) - 'a'; if ((checker & (1 << val)) > 0) return false; checker |= (1 << val); } return true; } โดยเฉพาะสิ่งที่checkerทำคืออะไร?

6
เหตุใดเวกเตอร์ <bool> จึงไม่เป็นคอนเทนเนอร์ STL
รายการที่ 18 ของสกอตต์เมเยอร์สหนังสือSTL มีผลบังคับใช้ 50 วิธีที่เฉพาะเจาะจงในการปรับปรุงการใช้งานของคุณของไลบรารีแม่แบบมาตรฐานกล่าวว่าเพื่อหลีกเลี่ยงการvector &lt;bool&gt;ที่มันไม่ได้เป็นภาชนะ STL และมันไม่ได้โดดถือbools รหัสต่อไปนี้: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; จะไม่คอมไพล์ละเมิดข้อกำหนดของคอนเทนเนอร์ STL ข้อผิดพลาด: cannot convert 'std::vector&lt;bool&gt;::reference* {aka std::_Bit_reference*}' to 'bool*' in initialization vector&lt;T&gt;::operator []return type ควรจะเป็นT&amp;แต่ทำไมถึงเป็นกรณีพิเศษสำหรับvector&lt;bool&gt;? อะไรvector&lt;bool&gt;จริงๆประกอบด้วย? รายการกล่าวเพิ่มเติมว่า: deque&lt;bool&gt; v; // is a STL container and it really contains bools สามารถใช้เป็นทางเลือกอื่นได้vector&lt;bool&gt;หรือไม่? ใครช่วยอธิบายเรื่องนี้ได้ไหม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.