РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
Шрифт:
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
#include ‹stl.h›
#include ‹stdlib.h›
#include ‹iostream.h›
class MyRandomGenerator {
public:
nsigned long operator(unsigned long n_);
};
unsigned long MyRandomGenerator::operator(unsigned long n_) {
return rand % n_;
}
int main {
vector‹int› v1(10);
iota(v1.begin, v1.end, 0);
ostream_iterator ‹int› iter(cout, " ");
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
MyRandomGenerator r;
for (int i = 0; i ‹ 3; i++) {
random_shuffle(v1.begin, v1.end, r);
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
}
return 0;
}
merge2.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main {
vector‹int› v1(5);
vector‹int› v2(v1.size);
for (int i = 0; i ‹ v1.size; i++) {
v1[i] = 10 - i;
v2[i] = 7 - i;
}
vector‹int› result(v1.size + v2.size);
merge(v1.begin, v1.end, v2.begin, v2.end, result.begin, greater‹int›);
ostream_iterator ‹int› iter(cout, " ");
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
copy(v2.begin, v2.end, iter);
cout ‹‹ endl;
copy(result.begin, result.end, iter);
cout ‹‹ endl;
return 0;
}
adjfind1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main {
typedef vector‹int› IntVector;
IntVector v(10);
for (int i = 0; i ‹ v.size; i++) v[i] = i;
IntVector::iterator location;
location = adjacent_find(v.begin, v.end);
if (location != v.end) cout ‹‹ "Found adjacent pair of: " ‹‹ *location ‹‹ endl;
else cout ‹‹ "No adjacent pairs" ‹‹ endl;
v[6] = 7;
location = adjacent_find(v.begin, v.end);
if (location!= v.end) cout ‹‹ "Found adjacent pair of: " ‹‹ *location ‹‹ endl;
else cout ‹‹ "No adjacent pairs" ‹‹ endl;
return 0;
}
vec7.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array1[] = {1, 4, 25};
int array2[] = {9, 16};
Поделиться:
Популярные книги
Фиктивная жена
1. Братья Вертинские
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Прометей: каменный век
1. Прометей
Фантастика:
альтернативная история
6.82
рейтинг книги
Сердце Дракона. Предпоследний том. Часть 1
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Дайте поспать! Том III
3. Вечный Сон
Фантастика:
фэнтези
5.00
рейтинг книги
Охота на эмиссара
1. Федерация Объединённых Миров
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Боги, пиво и дурак. Том 3
3. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Целитель
1. Целитель
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
"Фантастика 2023-123". Компиляция. Книги 1-25
Фантастика 2023. Компиляция
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Мужчина моей судьбы
2. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.03
рейтинг книги
Измена. Возвращение любви!
3. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Нефилим
4. Мания крафта
Фантастика:
фэнтези
боевая фантастика
рпг
7.64
рейтинг книги
Ваше Сиятельство 6
6. Ваше Сиятельство
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Магия чистых душ 2
Любовные романы:
любовно-фантастические романы
5.56
рейтинг книги
Чиновникъ Особых поручений
6. Александр Агренев
Фантастика:
попаданцы
альтернативная история
5.00