//: C04:VectorOfBool.cpp // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Demonstrate the vector specialization #include #include #include #include #include using namespace std; int main() { vector vb(10, true); vector::iterator it; for(it = vb.begin(); it != vb.end(); it++) cout << *it; cout << endl; vb.push_back(false); ostream_iterator out(cout, ""); copy(vb.begin(), vb.end(), out); cout << endl; bool ab[] = { true, false, false, true, true, true, true, false, false, true }; // There's a similar constructor: vb.assign(ab, ab + sizeof(ab)/sizeof(bool)); copy(vb.begin(), vb.end(), out); cout << endl; vb.flip(); // Flip all bits copy(vb.begin(), vb.end(), out); cout << endl; for(int i = 0; i < vb.size(); i++) vb[i] = 0; // (Equivalent to "false") vb[4] = true; vb[5] = 1; vb[7].flip(); // Invert one bit copy(vb.begin(), vb.end(), out); cout << endl; // Convert to a bitset: ostringstream os; copy(vb.begin(), vb.end(), ostream_iterator(os, "")); bitset<10> bs(os.str()); cout << "Bitset:\n" << bs << endl; } ///:~