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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

m['x'] = 10; // Correct mistake.

cout ‹‹ "m['x'] = " ‹‹ m['x'] ‹‹ endl;

cout ‹‹ "m['z'] = " ‹‹ m['z'] ‹‹ endl; // Note default value is added.

cout ‹‹ "m.count('z') = " ‹‹ m.count('z') ‹‹ endl;

pair‹maptype::iterator, bool› p;

p = m.insert(pair‹const char, int›('c', 100));

if (p.second) cout ‹‹ "First insertion successful" ‹‹ endl;

p = m.insert(pair‹const char, int› ('c', 100));

if (p.second) cout ‹‹ "Second insertion successful" ‹‹ endl;

else cout ‹‹ "Existing pair " ‹‹ (*(p.first)).first ‹‹ " -› " ‹‹ (*(p.first)).second ‹‹ endl;

return 0;

}

mismtch2.cpp

#include ‹stl.h›

#include ‹iostream.h›

#include ‹string.h›

bool str_equal(const char* a_, const char* b_) {

return ::strcmp(a_, b_) == 0 ? 1: 0;

}

const unsigned size = 5;

char* n1[size] = {"Brett", "Graham", "Jack", "Mike", "Todd"};

int main() {

char* n2[size];

copy(n1, n1 + 5, n2);

pair‹char**, char**› result;

result = mismatch(n1, n1+ size, n2, str_equal);

if (result.first == n1 + size && result.second == n2 + size)

cout ‹‹ "n1 and n2 are the same" ‹‹ endl;

else cout ‹‹ "mismatch at index: " ‹‹ (result.first - n1) ‹‹ endl;

n2[2] = "QED";

result = mismatch(n1, n1 + size, n2, str_equal);

if (result.first == n2 + size && result.second == n2 + size)

cout ‹‹ "n1 and n2 are the same" ‹‹ endl;

else cout ‹‹ "mismatch at index: " ‹‹ (result.first - n1) ‹‹ endl;

return 0;

}

mismtch1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main() {

typedef vector‹int› IntVec;

IntVec v1(10);

IntVec v2(v1.size());

iota(v1.begin(), v1.end(), 0);

iota(v2.begin(), v2.end(), 0);

pair ‹IntVec::iterator, IntVec::iterator› result;

result = mismatch(v1.begin(), v1.end(), v2.begin());

if (result.first = v1.end() && result.second == v2.end())

cout ‹‹ "v1 and v2 are the same" ‹‹ endl;

else cout ‹‹ "mismatch at index: " ‹‹ (result.first - v1.begin()) ‹‹ endl;

v2[v2.size()/2] = 42;

result = mismatch(v1.begin(), v1.end(), v2.begin());

if (result.first == v1.end() && result.second == v2.end())

cout ‹‹ "v1 and v2 are the same" ‹‹ endl;

else cout ‹‹ "mismatch at index: " ‹‹ (result.first - v1.begin()) ‹‹ endl;

return 0;

}

mmap2.cpp

#include ‹iostream.h›

#include ‹stl.h›

typedef multimap‹int, char, less‹int› › mmap;

typedef pair‹const int, char› pair_type;

pair_type p1(3, 'c');

pair_type p2(6, 'f');

pair_type p3(1, 'a');

pair_type p4(2, 'b');

pair_type p5(3, 'x');

pair_type p6(6, 'f');

pair_type array[] = { p1, p2, p3, p4, p5, p6 };

int main() {

mmap m(array, array + 7);

mmap::iterator i;

// Return location of first element that is not less than 3

i = m.lower_bound(3);

cout ‹‹ "lower bound:" ‹‹ endl;

cout ‹‹ (*i).first ‹‹ " -› " ‹‹ (*i).second ‹‹ endl;

// Return location of first element that is greater than 3

i = m.upper_bound(3);

cout ‹‹ "upper bound:" ‹‹ endl;

cout ‹‹ (*i).first ‹‹ " -› " ‹‹ (*i).second ‹‹ endl;

return 0;

}

adjfind2.cpp

#include ‹stl.h›

#include ‹iostream.h›

#include ‹string.h›

typedef vector‹char*› CStrVector;

int equal_length(const char* v1_, const char* v2_) {

return ::strlen(v1_) == ::strlen(v2_);

}

char* names[] = {"Brett", "Graham", "Jack", "Mike", "Todd"};

int main() {

const int nameCount = sizeof(names)/sizeof(names[0]);

CStrVector v(nameCount);

for (int i = 0; i ‹ nameCount; i++) v[i] = names[i];

CStrVector::iterator location;

location = adjacent_find(v.begin(), v.end(), equal_length);

if (location!= v.end())

cout ‹‹ "Found two adjacent strings of equal length: " ‹‹ *location

‹‹ " -and- " ‹‹ *(location + 1) ‹‹ endl;

else cout ‹‹ "Didn't find two adjacent strings of equal length.";

return 0;

}

list3.cpp

#include ‹iostream.h›

#include ‹stl.h›

char array[] = {'x', 'l', 'x', 't', 's', 's'};

int main() {

list‹char› str(array, array + 6);

list‹char›::iterator i;

cout ‹‹ "original: ";

for (i = str.begin(); i != str.end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

cout ‹‹ "reversed: ";

str.reverse();

for (i = str.begin(); i != str.end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

cout ‹‹ "removed: ";

str.remove('x');

for (i = str.begin(); i != str.end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

cout ‹‹ "uniqued: ";

str.unique();

for (i = str.begin(); i != str.end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

cout ‹‹ "sorted: ";

str.sort();

for (i = str.begin(); i != str.end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

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);

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

Интервал:

Закладка:

Сделать

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

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


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

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

x