Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
- Название:РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
- Автор:
- Жанр:
- Издательство:МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
- Год:1999
- Город:Москва
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL) краткое содержание
РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL) - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
return 0;
}
unegate1.cpp
#include ‹iostream.h›
#include ‹stl.h›
struct odd: public unary_function‹int, bool› {
odd() {}
bool operator() (int n_) const {return (n_ % 2) - 1;}
};
int array[3] = {1, 2, 3};
int main() {
int* p = find_if(array, array + 3, unary_negate‹odd›(odd()));
if (p != array + 3)
cout ‹‹ *p ‹‹ endl;
return 0;
}
alg4.cpp
#include ‹iostream.h›
#include ‹stl.h›
int main() {
vector‹int› years;
years.push_back(1962);
years.push_back(1992);
years.push_back(2001);
years.push_back(1999);
sort(years.begin(), years.end());
vector‹int›::iterator i;
for (i = years.begin(); i!= years.end(); i++)
cout ‹‹ *i ‹‹ endl;
return 0;
}
countif1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int odd(int a_) {
return a_ % 2;
}
int main() {
vector‹int› numbers(100);
for (int i = 0; i ‹ 100; i++) numbers[i] = i % 3;
int elements = 0;
count_if(numbers.begin(), numbers.end(), odd, elements);
cout ‹‹ "Found " ‹‹ elements ‹‹ " odd elements." ‹‹ endl;
return 0;
}
lwrbnd1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(20);
for (int i = 0; i ‹ v1.size(); i++) {
v1[i] = i/4;
cout ‹‹ v1[i] ‹‹ ' ';
}
int* location = lower_bound(v1.begin(), v1.end(), 3);
cout ‹‹ "\n3 can be inserted at index: " ‹‹ (location - v1.begin()) ‹‹ endl;
return 0;
}
lexcmp1.cpp
#include ‹stl.h›
#include ‹iostream.h›
const unsigned size = 6;
char n1[size] = "shoe";
char n2[size] = "shine";
int main() {
bool before = lexicographical_compare(n1, n1 + size, n2, n2 + size);
if (before) cout ‹‹ n1 ‹‹ " is before " ‹‹ n2 ‹‹ endl;
else cout ‹‹ n2 ‹‹ " is before " ‹‹ n1 ‹‹ endl;
return 0;
}
copyb.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size(); i++) v1[i] = i;
vector‹int› v2(v1.size());
copy_backward(v1.begin(), v1.end(), v2.end());
ostream_iterator‹int› iter(cout, " ");
copy(v2.begin(), v2.end(), iter);
cout ‹‹ endl;
return 0;
}
ptrbinf2.cpp
#include ‹iostream.h›
#include ‹stl.h›
int sum(int x_, int y_) {
return x_ + y_;
}
int input1[4] = {7, 2, 3, 5};
int input2[4] = {1, 5, 5, 8};
int main() {
int output[4];
transform(input1, input1 + 4, input2, output, ptr_fun(sum));
for (int i = 0; i ‹ 4; i++) cout ‹‹ output[i] ‹‹ endl;
return 0;
}
copyb0.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers[5] = {1, 2, 3, 4, 5};
int main() {
int result[5];
copy_backward(numbers, numbers + 5, result + 5);
for (int i = 0; i ‹ 5; i++) cout ‹‹ numbers[i] ‹‹ ' ';
cout ‹‹ endl;
for (i = 0; i ‹ 5; i++) cout ‹‹ result[i] ‹‹ ' ';
cout ‹‹ endl;
return 0;
}
binsert1.cpp
#include ‹iostream.h›
#include ‹stl.h›
char* array[] = {"laurie", "jennifer", "leisa"};
int main() {
vector‹char*› names;
copy(array, array + 3, back_insert_iterator‹vector‹char*› ›(names));
vector‹char*›::iterator i;
for (i = names.begin(); i!= names.end(); i++) cout ‹‹ *i ‹‹ endl;
return 0;
}
unegate2.cpp
#include ‹iostream.h›
#include ‹stl.h›
struct odd: public unary_function‹int, bool› {
odd() {}
bool operator() (int n_) const {return (n_ % 2) - 1;}
};
int array[3] = {1, 2, 3};
int main() {
int* p = find_if(array, array + 3, not1 (odd()));
if (p != array + 3) cout ‹‹ *p ‹‹ endl;
return 0;
}
revcopy1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers[6] = {0, 1, 2, 3, 4, 5};
int main() {
int result[6];
reverse_copy(numbers, numbers + 6, result);
for (int i = 0; i ‹ 6; i++) cout ‹‹ numbers[i] ‹‹ ' ';
cout ‹‹ endl;
for (i = 0; i ‹ 6; i++) cout ‹‹ result[i] ‹‹ ' ';
cout ‹‹ endl;
return 0;
}
finsert1.cpp
#include ‹iostream.h›
#include ‹stl.h›
char* array[] = {"laurie", "jennifer", "leisa"};
int main() {
deque‹char*› names;
copy(array, array + 3, front_insert_iterator‹deque ‹char*› ›(names));
deque‹char*›::iterator i;
for (i = names.begin(); i!= names.end(); i++) cout ‹‹ *i ‹‹ endl;
return 0;
}
remcpif1.cpp
#include ‹stl.h›
#include ‹iostream.h›
bool odd(int a_) {
return a_ % 2;
}
int numbers[6] = {1, 2, 3, 1, 2, 3};
int result[6] = {0, 0, 0, 0, 0, 0};
int main() {
remove_copy_if(numbers, numbers + 6, result, odd);
for (int i = 0; i ‹ 6; i++) cout ‹‹ result[i] ‹‹ ' ';
cout ‹‹ endl;
return 0;
}
inplmrg1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers[6] = {1, 10, 42, 3, 16, 32};
int main() {
for (int i = 0; i ‹ 6; i++) cout ‹‹ numbers[i] ‹‹ ' ';
cout ‹‹ endl;
inplace_merge(numbers, numbers + 3, numbers + 6);
for (i = 0; i ‹ 6; i++) cout ‹‹ numbers[i] ‹‹ ' ';
cout ‹‹ endl;
return 0;
}
list4.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array1[] = {1, 3, 6, 7};
int array2[] = {2, 4};
int main() {
list‹int› l1(array1, array1 + 4);
list‹int› l2(array2, array2 + 2);
l1.merge(l2);
for (list‹int›::iterator i = l1.begin(); i != l1.end(); i++) cout ‹‹ *i;
cout ‹‹ endl;
return 0;
}
revbit1.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array[] = {1, 5, 2, 3};
int main() {
list‹int› v(array, array + 4);
reverse_bidirectional_iterator‹list‹int›::iterator, int, list‹int›::reference, list‹int›::difference_type› r(v.end());
while (r != v.begin())
cout ‹‹ *r++ ‹‹ endl;
return 0;
}
copy3.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
vector‹int› v1(10);
for (int i = 0; i ‹ v1.size(); i++) v1[i] = i;
vector‹int› v2(10);
copy(v1.begin(), v1.end(), v2.begin());
ostream_iterator‹int› iter(cout, " ");
copy(v2.begin(), v2.end(), iter);
cout ‹‹ endl;
return 0;
}
merge0.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers1[5] = {1, 6, 13, 25, 101};
int numbers2[5] = {-5, 26, 36, 46, 99};
int main() {
int result[10];
merge(numbers1, numbers1 + 5, numbers2, numbers2 + 5, result);
for (int i = 0; i ‹ 10; i++) cout ‹‹ result[i] ‹‹ ' ';
cout ‹‹ endl;
return 0;
}
reviter1.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array[] = {1, 5, 2, 3};
int main() {
vector‹int› v(array, array + 4);
stl_reverse_iterator‹vector‹int›::iterator, int, vector‹int›::reference, vector‹int›::difference_type› r (v.end());
while (r!= v.begin()) cout ‹‹ *r++ ‹‹ endl;
return 0;
}
find1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int years[] = {1942, 1952, 1962, 1972, 1982, 1992};
int main() {
const unsigned yearCount = sizeof(years) / sizeof(years[0]);
int* location = find(years, years + yearCount, 1972);
cout ‹‹ "Found 1972 at offset " ‹‹ (location - years) ‹‹ endl;
return 0;
}
trnsfrm1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int negate_int(int a_) {
return -a_;
}
int numbers[6] = {-5, -1, 0, 1, 6, 11};
Интервал:
Закладка: