Шрифт:
s.insert(42);
cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;
set‹int, less‹int› ›::iterator i = s.find(40);
if (i == s.end) cout ‹‹ "40 Not found" ‹‹ endl;
else cout ‹‹ "Found " ‹‹ *i ‹‹ endl;
i = s.find(42);
if (i == s.end) cout ‹‹ "Not found" ‹‹ endl;
else cout ‹‹ "Found " ‹‹ *i ‹‹ endl;
int count = s.erase(42);
cout ‹‹ "Erased " ‹‹ count ‹‹ " instances" ‹‹ endl;
return 0;
}
vec2.cpp
#include ‹iostream.h›
#include ‹stl.h›
void print(vector‹double›& vector_) {
for (int i = 0; i ‹ vector_.size; i++)
cout ‹‹ vector_[i] ‹‹ " ";
cout ‹‹ endl;
}
int main {
vector‹double› v1; // Empty vector of doubles.
v1.push_back(32.1);
v1.push_back(40.5);
vector‹double› v2; // Another empty vector of doubles.
v2.push_back(3.56);
cout ‹‹ "v1 = ";
print(v1);
cout ‹‹ "v2 = ";
print(v2);
v1.swap(v2); // Swap the vector's contents.
cout ‹‹ "v1 = ";
print(v1);
cout ‹‹ "v2 = ";
print(v2);
v2 = v1; // Assign one vector to another.
cout ‹‹ "v2 = ";
print(v2);
return 0;
}
uniqcpy2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
bool str_equal(const char* a_, const char* b_) {
return ::strcmp(a_, b_) - 0 ? 1: 0;
}
char* labels[] = {"Q","Q","W","W","E","E","R","T","T","Y","Y"};
int main {
const unsigned count = sizeof(labels) / sizeof(labels[0]);
ostream_iterator ‹char*› iter(cout);
copy(labels, labels + count, iter);
cout ‹‹ endl;
char* uCopy[count];
fill(uCopy, uCopy + count, ");
unique_copy(labels, labels + count, uCopy, str_equal);
copy(labels, labels + count, iter);
cout ‹‹ endl;
copy(uCopy, uCopy + count, iter);
cout ‹‹ endl;
return 0;
}
mismtch0.cpp
#include ‹stl.h›
#include ‹iostream.h›
int n1[5] = {1, 2, 3, 4, 5};
int n2[5] = {1, 2, 3, 4, 5};
int n3[5] = {1, 2, 3, 2, 1};
int main {
pair ‹int*, int*› result;
result = mismatch(n1, n1 + 5, n2);
if (result.first == (n1 + 5) && result.second == (n2 + 5))
cout ‹‹ "n1 and n2 are the same" ‹‹ endl;
else cout ‹‹ "Mismatch at offset: " ‹‹ (result.first - n1) ‹‹ endl;
result = mismatch(n1, n1 + 5, n3);
if (result.first == (n1 + 5) && result.second == (n3 + 5))
cout ‹‹ "n1 and n3 are the same" ‹‹ endl;
else cout ‹‹ "Mismatch at offset: " ‹‹ (result.first - n1) ‹‹ endl;
return 0;
}
rndshuf2.cpp