РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
Шрифт:
// Return location of first element that is not less than 3
i = s.lower_bound(3);
cout ‹‹ "lower bound = " ‹‹ *i ‹‹ endl;
// Return location of first element that is greater than 3
i = s.upper_bound(3);
cout ‹‹ "upper bound = " ‹‹ *i ‹‹ endl;
return 0;
}
binsrch2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
bool str_compare(const char* a_, const char* b_) {
return ::strcmp(a_, b_) ‹ 0 ? 1 : 0;
}
char* labels[] = {"aa", "dd", "ff", "jj", "ss", "zz"};
int main {
const unsigned count = sizeof(labels) / sizeof(labels[0]);
if (binary_search(labels, labels + count, "ff", str_compare)) cout ‹‹ "ff is in labels." ‹‹ endl;
else cout ‹‹ "ff is not in labels." ‹‹ endl;
return 0;
}
nthelem2.cpp
#include ‹stl.h›
#include ‹stdlib.h›
#include ‹iostream.h›
int main {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size; i++) v1[i] = rand % 10;
ostream_iterator‹int› iter(cout, " ");
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
nth_element(v1.begin, v1.begin + v1.size / 2, v1.end, greater‹int›);
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
return 0;
}
setintr1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main {
vector‹int› v1(10);
iota(v1.begin, v1.end, 0);
vector‹int› v2(10);
iota(v2.begin, v2.end, 7);
ostream_iterator ‹int› iter(cout, " ");
cout ‹‹ "v1: ";
copy(v1.begin, v1.end, iter);
cout ‹‹ "\nv2: ";
copy(v2.begin, v2.end, iter);
cout ‹‹ endl;
set_intersection(v1.begin, v1.end, v2.begin, v2.end, iter);
cout ‹‹ endl;
return 0;
}
setdiff1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main {
vector‹int› v1(10);
iota(v1.begin, v1.end, 0);
vector‹int› v2(10);
iota(v2.begin, v2.end, 7);
ostream_iterator ‹int› iter(cout, " ");
cout ‹‹ "v1: ";
copy(v1.begin, v1.end, iter);
cout ‹‹ "\nv2: ";
copy(v2.begin, v2.end, iter);
cout ‹‹ endl;
set_difference(v1.begin, v1.end, v2.begin, v2.end, iter);
cout ‹‹ endl;
return 0;
}
adjdiff2.cpp
#include ‹stl.h›
#include ‹iostream.h›
int mult(int a_, int b_) {
return a_ * b_;
}
int main {
vector‹int› v(10);
for (int i = 0; i ‹ v.size; i++) v[i] = i + 1;
vector‹int› rslt(v.size);
adjacent_difference(v.begin, v.end, rslt.begin, mult);
ostream_iterator‹int› iter(cout, " ");
copy(v.begin, v.end, iter);
cout ‹‹ endl;
copy(rslt.begin, rslt.end, iter);
cout ‹‹ endl;
return 0;
}
rotate1.cpp
#include ‹stl.h›
#include ‹iostream.h›
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;
for (int i = 0; i ‹ v1.size; i++) {
rotate(v1.begin, v1.begin + i, v1.end);
ostream_iterator ‹int› iter(cout, " ");
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
}
cout ‹‹ endl;
return 0;
}
setunon1.cpp
Поделиться:
Популярные книги
Газлайтер. Том 10
10. История Телепата
Фантастика:
боевая фантастика
5.00
рейтинг книги
Законы Рода. Том 5
5. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Измена. Избранная для дракона
Любовные романы:
любовно-фантастические романы
3.40
рейтинг книги
Невеста на откуп
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Купец VI ранга
6. Купец
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Офицер-разведки
2. Красноармеец
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Надуй щеки! Том 4
4. Чеболь за партой
Фантастика:
попаданцы
уся
дорама
5.00
рейтинг книги
Русь. Строительство империи 2
2. Вежа. Русь
Фантастика:
попаданцы
альтернативная история
рпг
5.00
рейтинг книги
Переиграть войну! Пенталогия
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
На границе империй. Том 2
2. Фортуна дама переменчивая
Фантастика:
космическая фантастика
7.35
рейтинг книги
Страж Кодекса. Книга VI
6. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Здравствуй, 1984-й
1. Девяностые
Фантастика:
альтернативная история
6.42
рейтинг книги
На границе империй. Том 9. Часть 3
16. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Морской волк. 1-я Трилогия
1. Морской волк
Фантастика:
альтернативная история
8.71