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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

v1[i] = names[i];

}

vector‹char*› v2(2);

v2[0] = "foo";

v2[1] = "bar";

sort(v1.begin(), v1.end(), compare_strings);

sort(v2.begin(), v2.end(), compare_strings);

bool inc = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), compare_strings);

if (inc) cout ‹‹ "v1 includes v2" ‹‹ endl;

else cout ‹‹ "v1 does not include v2" ‹‹ endl;

v2[0] = "Brett";

v2[1] = "Todd";

inc = includes(v1.begin(), v1.end(), v2.begin(), v2.end(), compare_strings);

if (inc) cout ‹‹ "v1 includes v2" ‹‹ endl;

else cout ‹‹ "v1 does not include v2" ‹‹ endl;

return 0;

}

search1.cpp

#include ‹stl.h›

#include ‹iostream.h›

int main() {

typedef vector‹int› IntVec;

IntVec v1(10);

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

IntVec v2(3);

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

ostream_iterator‹int› iter(cout, " ");

cout ‹‹ "v1: ";

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

cout ‹‹ endl;

cout ‹‹ "v2: ";

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

cout ‹‹ endl;

IntVec::iterator location;

location = search(v1.begin(), v1.end(), v2.begin(), v2.end());

if (location == v1.end()) cout ‹‹ "v2 not contained in v1" ‹‹ endl;

else cout ‹‹ "Found v2 in v1 at offset: " ‹‹ location - v1.begin() ‹‹ endl;

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

cout ‹‹ "v1: ";

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

cout ‹‹ endl;

cout ‹‹ "v2: ";

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

cout ‹‹ endl;

location = search(v1.begin(), v1.end(), v2.begin(), v2.end());

if (location == v1.end()) cout ‹‹ "v2 not contained in v1" ‹‹ endl;

else cout ‹‹ "Found v2 in v1 at offset: " ‹‹ location - v1.begin() ‹‹ endl;

return 0;

}

istmit2.cpp

#include ‹iostream.h›

#include ‹fstream.h›

#include ‹stl.h›

typedef vector‹char› Line;

void printLine(const Line* line_) {

vector‹char›::const_iterator i;

for (i = line_-›begin(); i!= line_-›end(); i++) cout ‹‹ *i;

cout ‹‹ endl;

}

int main() {

Line buffer;

vector‹Line*› lines;

ifstream s("data.txt");

s.unsetf(ios::skipws); // Disable white-space skipping.

istream_iterator‹char, ptrdiff_t› it1(s); // Position at start of file.

istream_iterator‹char, ptrdiff_t› it2; // Serves as "past-the-end" marker.

copy(it1, it2, back_inserter(buffer));

Line::iterator i = buffer.begin();

Line::iterator p;

while (i != buffer.end()) {

p = find(i, buffer.end(), '\n');

lines.push_back(new Line(i, p));

i = ++p;

}

sort(lines.begin(), lines.end(), less_p‹Line*›());

cout ‹‹ "Read " ‹‹ lines.size() ‹‹ " lines" ‹‹ endl;

vector‹Line*›::iterator j;

for(j = lines.begin(); j!= lines.end(); j++) printLine(*j);

release(lines.begin(), lines.end()); // Release memory.

return 0;

}

alloc1.cpp

#include ‹stl.h›

#include ‹ospace/stl/examples/myaloc.h›

int main() {

{

cout ‹‹ "vectors:" ‹‹ endl;

os_my_allocator‹int› alloc;

vector‹int› v3(alloc);

v3.push_back(42);

vector‹int› v4(alloc);

v4.push_back(42);

}

{

cout ‹‹ "bit_vectors:" ‹‹ endl;

os_my_allocator‹unsigned int› alloc;

bit_vector v1(alloc);

v1.push_back(1);

}

{

cout ‹‹ "deques:" ‹‹ endl;

os_my_allocator‹int› alloc;

deque‹int› d(alloc);

d.push_back(42);

}

{

cout ‹‹ "lists:" ‹‹ endl;

os_my_allocator‹os_list_node‹int› › alloc;

list‹int› l(alloc);

l.push_back(42);

}

{

cout ‹‹ "sets:" ‹‹ endl;

os_my_allocator‹os_value_node‹int› › alloc;

set‹int, less‹int› › s(alloc);

s.insert(42);

}

{

cout ‹‹ "maps" ‹‹ endl;

os_my_allocator‹os_value_node‹os_pair‹const int, float› › › alloc;

map‹int, float, less‹int› › m(alloc);

m[4] = 2.0;

}

return 0;

}

release2.cpp

#include ‹stl.h›

#include ‹iostream.h›

class X {

public:

X(int i_): i (i_) {}

~X() {cout ‹‹ "Delete X(" ‹‹ i ‹‹ ")" ‹‹ endl;}

int i;

};

ostream& operator ‹‹ (ostream& stream_, const X& x_) {

return stream_ ‹‹ "X(" ‹‹ x_.i ‹‹ ")";

}

int main() {

vector‹X*› v;

v.push_back(new X(2));

v.push_back(new X(1));

v.push_back(new X(4));

vector‹X*›::iterator i;

cout ‹‹ "Initial contents:" ‹‹ endl;

for (i = v.begin(); i!= v.end(); i++) cout ‹‹ " " ‹‹ *(*i) ‹‹ endl;

release(v.begin()); // Delete the first heap-based object.

v.erase(v.begin()); // Erase the first element.

cout ‹‹ "Remaining contents:" ‹‹ endl;

for (i = v.begin(); i != v.end(); i++) cout ‹‹ " " ‹‹ *(*i) ‹‹ endl;

release(v.begin(), v.end()); // Delete remaining heap-based objects.

v.erase(v.begin(), v.end()); // Erase remaining elements.

return 0;

}

map1.cpp

#include ‹iostream.h›

#include ‹stl.h›

int main() {

typedef map‹char, int, less‹char› › maptype;

maptype m;

// Store mappings between roman numerals and decimals.

m['l'] = 50;

m['x'] = 20; // Deliberate mistake.

m['v'] = 5;

m['i'] = 1;

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

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

Интервал:

Закладка:

Сделать

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

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


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

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

x