//: C07:VectorOfBool.cpp // From "Thinking in C++, Volume 2", by Bruce Eckel & Chuck Allison. // (c) 1995-2004 MindView, Inc. All Rights Reserved. // See source code use permissions stated in the file 'License.txt', // distributed with the code package available at www.MindView.net. // Demonstrate the vector specialization. #include #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(size_t 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:" << endl << bs << endl; } ///:~