40-1-¸¶.vector<bool>

º¤ÅÍ´Â ÀÓÀÇ Å¸ÀÔÀÇ ¿ä¼Ò¸¦ ÀúÀåÇÒ ¼ö ÀÖÀ¸¹Ç·Î bool ŸÀÔÀÇ ÁøÀ§Çü °ªµµ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ±×·±µ¥ boolÀº Å©±â°¡ 1¹ÙÀÌÆ®ÀÌÁö¸¸ true ¶Ç´Â false¸¦ ±â¾ïÇϴµ¥´Â ´ÜÁö 1ºñÆ®¸¸ »ç¿ëµÇ¹Ç·Î 7ºñÆ®°¡ ³¶ºñµÇ´Â ¹®Á¦°¡ ÀÖ´Ù. 100°³ÀÇ ÁøÀ§°ªÀÌ ÇÊ¿äÇÏ´Ù¸é 100/8 = 13¹ÙÀÌÆ® Á¤µµ¸é ÃæºÐÇѵ¥ boolÇü ¿ä¼Ò 100ÀÇ Å©±â ÃÑÇÕÀº 100¹ÙÀÌÆ®³ª Â÷ÁöÇϹǷΠ´ë·« 8¹è Á¤µµÀÇ °ø°£ ³¶ºñ°¡ ÀÖ´Â ¼ÀÀÌ´Ù.

±×·¡¼­ º¤ÅÍ´Â boolÇü¿¡ ´ëÇؼ­ Ư¼öÈ­µÇ¾î ÀÖÀ¸¸ç ÇϳªÀÇ °ªÀ» ÀúÀåÇϴµ¥ ºñÆ® Çϳª¸¸ »ç¿ëÇÑ´Ù. ¸¶Ä¡ C ±¸Á¶Ã¼ÀÇ ºñÆ®Çʵå¿Í À¯»çÇÏ´Ù. vector<bool>Àº ÁøÀ§ÇüÀÇ ¿ä¼ÒµéÀ» 1ºñÆ®¿¡ Çϳª¾¿ ¾ÐÃàÇÏ¿© ÀúÀåÇÏ´Â º°µµÀÇ µ¶¸³ Ŭ·¡½ºÀÌ´Ù. 8°³ÀÇ ÁøÀ§ÇüÀ» ÀúÀåÇÒ ¶§ boolÇüÀÇ ´Ü¼ø ¹è¿­¿¡ ºñÇØ vector<bool>ÀÇ Å©±â°¡ ÈξÀ ´õ ÀÛ´Ù.

bool ¹è¿­Àº 8¹ÙÀÌÆ®¸¦ Â÷ÁöÇÏ°í vector<bool>Àº ºÒ°ú 1¹ÙÀÌÆ®¹Û¿¡ Â÷ÁöÇÏÁö ¾Ê¾Æ 7¹ÙÀÌÆ®¸¦ ¾Æ³¥ ¼ö ÀÖ´Ù. vector<BOOL>µµ °¡´ÉÇѵ¥ BOOLÀº Á¤¼ö¿Í Å©±â°¡ °°À¸¹Ç·Î ¹«·Á 32¹è³ª ´õ Å©´Ù. ¹°·Ð ¿äÁò°°ÀÌ ¸Þ¸ð¸®°¡ dzºÐÇÑ »óȲ¿¡¼­ 7¹ÙÀÌÆ® Á¤µµ¾ß ¾Æ²¸ ºÃÀÚ°ÚÁö¸¸ ´ë±Ô¸ðÀÇ ·Î±× Á¤º¸¸¦ °ü¸®ÇÒ ¶§´Â ÀÌ Â÷ÀÌ°¡ ¾ÆÁÖ ½É°¢ÇØÁú ¼öµµ ÀÖ´Ù.

 

¿¹ Á¦ : vectorbool

#include <iostream>

#include <vector>

using namespace std;

 

void main()

{

     vector<bool> vb(32);

 

     cout << vb[10] << endl;

     vb[10]=true;

     cout << vb[10] << endl;

 

     vector<bool>::reference r=vb[10];

     cout << r << endl;

     r.flip();

     cout << r << endl;

     vector<bool>::iterator it;

     for (it=vb.begin();it!=vb.end();it++) {

          cout << *it;

     }

}

 

Å©±â 32ÀÇ bool º¤ÅÍ vb¸¦ ¼±¾ðÇß´Ù. 32ÀÇ Å©±âÁö¸¸ ½ÇÁ¦ Á¤º¸ ÀúÀåÀ» À§ÇØ »ç¿ëÇÏ´Â ¸Þ¸ð¸®´Â ºÒ°ú 4¹ÙÀÌÆ® Á¤µµ¹Û¿¡ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. Ư¼öÈ­µÈ Ŭ·¡½ºÀ̱â´Â ÇÏÁö¸¸ »ç¿ëÇÏ´Â ¹æ¹ýÀº ÀÏ¹Ý º¤ÅÍ¿Í º°·Î Ʋ¸®Áö ¾ÊÀ¸¸ç ¹è¿­°úµµ À¯»çÇÏ´Ù. ƯÁ¤ À§Ä¡ÀÇ °ªÀ» ¾×¼¼½ºÇÒ ¶§´Â [ ] ¿¬»êÀÚ·Î Àб⸸ ÇÏ¸é µÈ´Ù.

vector<bool>¿¡ Æ÷ÇÔµÈ reference ŸÀÔÀº º¤Åͳ»ÀÇ ÇÑ ¿ä¼Ò, ±×·¯´Ï±î ÇÑ ºñÆ®¸¦ Ç¥ÇöÇϴ Ŭ·¡½ºÀÌ´Ù. ÀÌ ¿Ü¿¡ ºñÆ®¸¦ µÚÁý´Â flip, boolÇüÀ¸·Î º¯È¯Çϴ ij½ºÆ® ¿¬»êÀÚ, ºñÆ®¸¦ ¹ÝÀüÇÏ´Â ~ ¿¬»êÀÚ, ´ëÀÔ ¿¬»êÀÚ µîÀÌ Á¤ÀǵǾî ÀÖ´Ù. ¿¹Á¦¿¡¼­´Â ¹Ýº¹ÀÚ·Î Àüü¸¦ ¼øȸÇϸ鼭 Ãâ·ÂÇØ º¸¾Ò´Ù. vector<bool>Àº Ç¥ÁØ¿¡ Æ÷ÇԵǾî ÀÖ±â´Â ÇÏÁö¸¸ ¸î °¡Áö Á¡¿¡¼­ ¹®Á¦°¡ ÀÖ°í ÄÄÆÄÀÏ·¯¸¶´Ù Áö¿ø ¹üÀ§°¡ ´Þ¶ó °¡±ÞÀûÀÌ¸é »ç¿ëÀ» ÀÚÀçÇÏ´Â °ÍÀÌ ÁÁ´Ù.