РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
Шрифт:
return 0;
}
parsrtc2.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* names[] = {"aa", "ff", "dd", "ee", "cc", "bb"};
int main {
const unsigned nameSize = sizeof(names) / sizeof(names[0]);
vector‹char*› v1(nameSize);
for (int i = 0; i ‹ v1.size; i++) v1[i] = names[i];
ostream_iterator‹char*› iter(cout, " ");
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
vector‹char*› result(5);
partial_sort_copy(v1.begin, v1.end, result.begin, result.end, str_compare);
copy(v1.begin, v1.end, iter);
cout ‹‹ endl;
return 0;
}
vec6.cpp
#include ‹iostream.h›
#include ‹stl.h›
int array[] = {1, 4, 9, 16, 25, 36};
int main {
vector‹int› v(array, array + 6);
for (int i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.begin); // Erase first element.
for (i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.end - 1); // Erase last element.
for (i = 0; i ‹ v.size; i++) cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase(v.begin + 1, v.end - 1); // Erase all but first and last.
for (i = 0; i ‹ v.size; i++)
cout ‹‹ "v[" ‹‹ i ‹‹ "] = " ‹‹ v[i] ‹‹ endl;
cout ‹‹ endl;
v.erase; // Erase all.
return 0;
}
inrprod2.cpp
#include ‹stl.h›
#include ‹iostream.h›
#include ‹string.h›
int add(int a_, int b_) {
return a_ + b_;
}
int mult(int a_, int b_) {
return a_ * b_;
}
int main {
vector‹int› v1(3);
vector‹int› v2(v1.size);
for (int i = 0; i ‹ v1.size; i++) {
v1[i] = i + 1;
v2[i] = v1.size - i;
}
ostream_iterator‹int› iter(cout, " ");
cout ‹‹ "Inner product(product of sums):\n\t";
copy(v1.begin, v1.end, iter);
cout ‹‹ "\n\t";
copy(v2.begin, v2.end, iter);
int result = inner_product(v1.begin, v1.end, v2.begin, 1, mult, add);
cout ‹‹ "\nis: " ‹‹ result ‹‹ endl;
return 0;
}
mmap1.cpp
#include ‹iostream.h›
#include ‹stl.h›
int main {
typedef multimap‹char, int, less‹char› › mmap;
mmap m;
cout ‹‹ "count('X') = " ‹‹ m.count('X') ‹‹ endl;
m.insert(pair‹const char, int›('X', 10)); // Standard way.
cout ‹‹ "count('X') = " ‹‹ m.count('X') ‹‹ endl;
m.insert('X', 20); // Non-standard, but very convenient!
cout ‹‹ "count('X') = " ‹‹ m.count('X') ‹‹ endl;
m.insert('Y', 32);
mmap::iterator i = m.find('X'); // Find first match.
while (i != m.end) { // Loop until end is reached.
cout ‹‹ (*i).first ‹‹ " -› " ‹‹ (*i).second ‹‹ endl;
i++;
}
int count = m.erase('X');
cout ‹‹ "Erased " ‹‹ count ‹‹ " items" ‹‹ endl;
return 0;
}
adjfind0.cpp
#include ‹stl.h›
#include ‹iostream.h›
int numbers1[5] = {1, 2, 4, 8, 16};
int numbers2[5] = {5, 3, 2, 1, 1};
int main {
int* location = adjacent_find(numbers1, numbers1 + 5);
if (location != numbers1 + 5)
cout ‹‹ "Found adjacent pair of: " ‹‹ *location ‹‹ " at offset " ‹‹ (location - numbers1) ‹‹ endl;
Поделиться:
Популярные книги
Фиктивная жена
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