Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)

Здесь есть возможность читать онлайн «Александр Степанов - РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1999, Издательство: МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ), Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

  • Название:
    РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)
  • Автор:
  • Издательство:
    МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
  • Жанр:
  • Год:
    1999
  • Город:
    Москва
  • ISBN:
    нет данных
  • Рейтинг книги:
    4 / 5. Голосов: 1
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL): краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL) — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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;

else cout ‹‹ "No adjacent pairs" ‹‹ endl;

location = adjacent_find(numbers2, numbers2 + 5);

if (location != numbers2 + 5)

cout ‹‹ "Found adjacent pair of: " ‹‹ *location ‹‹ " at offset " ‹‹ (location - numbers2) ‹‹ endl;

else cout ‹‹ "No adjacent pairs" ‹‹ endl;

return 0;

}

parsrt2.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;

partial_sort(v1.begin(), v1.begin() + nameSize/2, v1.end(), str_compare);

copy(v1.begin(), v1.end(), iter);

cout ‹‹ endl;

return 0;

}

mset5.cpp

#include ‹iostream.h›

#include ‹stl.h›

bool less_than(int a_, int b_) {

return a_ ‹ b_;

}

bool greater_than(int a_, int b_) {

return a_ › b_;

}

int array[] = {3, 6, 1, 9};

int main() {

typedef pointer_to_binary_function‹int, int, bool› fn_type;

typedef multiset‹int, fn_type› mset;

fn_type f(less_than);

mset s1(array, array + 4, f);

mset::const_iterator i = s1.begin();

cout ‹‹ "Using less_than: " ‹‹ endl;

while (i != s1.end()) cout ‹‹ *i++ ‹‹ endl;

fn_type g(greater_than);

mset s2(array, array + 4, g);

i = s2.begin();

cout ‹‹ "Using greater_than: " ‹‹ endl;

while (i != s2.end()) cout ‹‹ *i++ ‹‹ endl;

return 0;

}

mset1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int main() {

typedef multiset‹int, less‹int› › mset;

mset s;

cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;

s.insert(42);

cout ‹‹ "count(42) = " ‹‹ s.count(42) ‹‹ endl;

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›

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»

Представляем Вашему вниманию похожие книги на «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)»

Обсуждение, отзывы о книге «РУКОВОДСТВО ПО СТАНДАРТНОЙ БИБЛИОТЕКЕ ШАБЛОНОВ (STL)» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x