#include<iostream> using std::cout; using std::endl;
intmain() { constchar *st = "The expense of spirit\n"; int len = 0; while (*st) { ++len; ++st; } cout << len << ": " << st << endl; return0; } </code></pre>
<pre><code class="c">#include<iostream> using std::cout; using std::endl;
constchar *st = "The expense of spirit\n";
intmain() { int len = 0; constchar *p = st; while (*p) { ++len; ++p; } cout << len << ": " << st << endl; return0; } </code></pre>
<pre><code class="c">#include<string> using std::string; #include<iostream> using std::cout; using std::endl;
using std::cout; using std::endl; using std::vector;
intmain() { // empty vector vector<int> ivec; int val; // give each element a new value for (vector<int>::size_type ix = 0; ix != 10; ++ix) ivec.push_back(ix);
// reset the elements in the vector to zero for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix) ivec[ix] = 0;
// is there anything to print? if (ivec.empty() == false) { cout << "vector contents: " << endl; // print each element separated by a newline for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix) cout << ivec[ix] << endl; } return0; }
using std::vector; using std::string; using std::cin; using std::cout; using std::endl;
intmain() { vector<int> ivec(10);
// reset all the elements in ivec to 0 for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix) ivec[ix] = 0;
// print what we've got so far: should print 10 0's for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix) cout << ivec[ix] << " "; cout << endl;
// equivalent loop using iterators to reset all the elements in ivec to 0 for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter) *iter = 0; // set element to which iter refers to 0
// print using iterators: should print 10 0's for (vector<int>::iterator iter = ivec.begin(); iter != ivec.end(); ++iter) cout << *iter << " "; // print the element to which iter refers cout << endl;
vector<int>::iterator iter = ivec.begin(); while (iter != ivec.end()) { *iter = 0; ++iter; } return0; }
#include<cstddef> #include<iostream> #include<string> using std::cout; using std::endl; using std::string; using std::size_t;
#include<bitset> using std::bitset; intmain() { bitset<32> bitvec; // 32 bits, all zero bool is_set = bitvec.any(); // false, all bits are zero bool is_not_set = bitvec.none(); // true, all bits are zero
cout << "bitvec: " << bitvec << endl;
size_t sz = bitvec.size(); // returns 32
size_t bits_set = bitvec.count(); // returns number of bits that are on
// assign 1 to even numbered bits for (int index = 0; index != 32; index += 2) bitvec[index] = 1;
// equivalent loop using set operation for (int index = 0; index != 32; index += 2) bitvec.set(index);
unsigned i;
cout << "bitvec: positions turned on:\n\t"; for (int index = 0; index != 32; ++index) if (bitvec[index]) cout << index << " "; cout << endl;
// equivalent; turn off first bit bitvec.reset(0); bitvec[0] = 0;
bitvec.reset(); // set all the bits to 0. bitvec.set(); // set all the bits to 1
bitvec.flip(0); // reverses value of first bit bitvec[0].flip(); // also reverses the first bit bitvec.flip(); // reverses value of all bits
// leaves bitvec unchanged; yields a copy of bitvec with all the bits reversed bitvec = ~bitvec;
// bitvec1 is smaller than the initializer bitset<16> bitvec1(0xffff); // bits 0 ... 15 are set to 1
// bitvec2 same size as initializer bitset<32> bitvec2(0xffff); // bits 0 ... 15 are set to 1; 16 ... 31 are 0
// on a 32-bit machine, bits 0 to 31 initialized from 0xffff bitset<128> bitvec3(0xffff); // bits 32 through 127 initialized to zero cout << "bitvec1: " << bitvec1 << endl; cout << "bitvec2: " << bitvec2 << endl; cout << "bitvec2[0] " << bitvec2[0] << endl; cout << "bitvec2[31] " << bitvec2[31] << endl; cout << "bitvec3: " << bitvec3 << endl;